Re: [問題] HEROKU 如何確定APPLICATION ERROR的原因

看板Ruby作者 (godfat 真常)時間13年前 (2011/11/03 20:37), 編輯推噓6(6017)
留言23則, 4人參與, 最新討論串2/3 (看更多)
※ 引述《BM0108 (衝)》之銘言: : → BM0108:請問板主,要如何判別是code的timeout還是dyno的問題?thx! 11/03 13 : → BM0108:另外,板主為何會覺得一定是 timeout?我還滿好奇的:p 11/03 17 呃,首先我不知道你所謂的 dyno 的問題是指什麼? 在我看來這裡只有一個問題,就是 timeout 的問題, 增加 dyno 可以降低這個問題的「程度」,但不是良好解, 因為一個 request 要 20 秒,且只靠不同 process 來達到 concurrent, 假設你要 60 requests/minute, 則你需要至少 20+ dynos (processes), 這絕對不是一個好辦法... 除非你錢夠多,而且使用量很小。 -- In Lisp, you don't just write your program down toward the language, you also build the language up toward your program. 《Programming Bottom-Up》- Paul Graham 1993 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.239.235

11/03 21:23, , 1F
簡單的說,我假如增加dyno,能降低這個情形,但無法徹底解?
11/03 21:23, 1F

11/03 21:48, , 2F
你應該要先修改你的架構,不是砸錢..
11/03 21:48, 2F

11/03 22:28, , 3F
嗯嗯 我當然也是這麼想 可是以轉錄ptt文章來說,一次下來
11/03 22:28, 3F

11/03 22:29, , 4F
10幾秒應該是勢所難免,不是我演算法寫多好就能有效改善的
11/03 22:29, 4F

11/03 22:29, , 5F
不管怎樣,我的code下request給ptt,往來就是要時間,尤其
11/03 22:29, 5F

11/03 22:30, , 6F
heroku架在aws上,server在美國,下request回台灣ptt更久@@
11/03 22:30, 6F

11/03 22:31, , 7F
我發這篇問題,主要就是想請教前輩,有沒有方法可以明確判
11/03 22:31, 7F

11/03 22:32, , 8F
斷究竟是code本身就timeout了(只有一個人也會timeout)
11/03 22:32, 8F

11/03 22:33, , 9F
還是同時太多人才timeou。前者毫無疑問要改code,後者則有
11/03 22:33, 9F

11/03 22:34, , 10F
得傷腦筋。 重點是,以heroku提供的log,我不太能確定@@
11/03 22:34, 10F

11/03 22:55, , 11F
推文太長了,看一下板規..
11/03 22:55, 11F

11/03 23:03, , 12F
嗯 我推到一半就有在想這個問題,但我一開始也不知道我會
11/03 23:03, 12F

11/03 23:04, , 13F
推那麼長@@ 所以現在該怎辦@@ 又,我的問題有解答嗎@@
11/03 23:04, 13F

11/04 00:09, , 14F
改架構有時候不是改演算法
11/04 00:09, 14F

11/04 00:10, , 15F
例如你可以把知道會花很多時間的操作丟給背景做或拆開
11/04 00:10, 15F

11/04 00:18, , 16F
受教了,感謝!
11/04 00:18, 16F

11/04 01:32, , 17F
看起來是連線問題跟 dyno 數量多寡無關
11/04 01:32, 17F

11/04 01:34, , 18F
你應該要在台灣這裡弄台機器或空間做中介站
11/04 01:34, 18F

11/04 01:37, , 19F
用來處理一些雜事
11/04 01:37, 19F

11/04 01:41, , 20F
dyno 是用來平衡負載量,就像是餐廳的服務生
11/04 01:41, 20F

11/04 01:42, , 21F
人員越多,就越能即時招呼客人
11/04 01:42, 21F

11/04 01:42, , 22F
或做更多的事情
11/04 01:42, 22F

11/04 01:47, , 23F
heroku 這三十秒是故意的,因為他們不希望程式很沒有效率
11/04 01:47, 23F
文章代碼(AID): #1EiehkT1 (Ruby)
文章代碼(AID): #1EiehkT1 (Ruby)