作者godfat (godfat 真常)
看板Ruby
标题Re: [问题] HEROKU 如何确定APPLICATION ERROR的原因
时间Thu Nov 3 20:36:58 2011
※ 引述《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
1F:推 BM0108:简单的说,我假如增加dyno,能降低这个情形,但无法彻底解? 11/03 21:23
2F:推 ducksteven:你应该要先修改你的架构,不是砸钱.. 11/03 21:48
3F:推 BM0108:嗯嗯 我当然也是这麽想 可是以转录ptt文章来说,一次下来 11/03 22:28
4F:→ BM0108:10几秒应该是势所难免,不是我演算法写多好就能有效改善的 11/03 22:29
5F:→ BM0108:不管怎样,我的code下request给ptt,往来就是要时间,尤其 11/03 22:29
6F:→ BM0108:heroku架在aws上,server在美国,下request回台湾ptt更久@@ 11/03 22:30
7F:→ BM0108:我发这篇问题,主要就是想请教前辈,有没有方法可以明确判 11/03 22:31
8F:→ BM0108:断究竟是code本身就timeout了(只有一个人也会timeout) 11/03 22:32
9F:→ BM0108:还是同时太多人才timeou。前者毫无疑问要改code,後者则有 11/03 22:33
10F:→ BM0108:得伤脑筋。 重点是,以heroku提供的log,我不太能确定@@ 11/03 22:34
11F:→ godfat:推文太长了,看一下板规.. 11/03 22:55
12F:推 BM0108:嗯 我推到一半就有在想这个问题,但我一开始也不知道我会 11/03 23:03
13F:→ BM0108:推那麽长@@ 所以现在该怎办@@ 又,我的问题有解答吗@@ 11/03 23:04
14F:推 ducksteven:改架构有时候不是改演算法 11/04 00:09
15F:→ ducksteven:例如你可以把知道会花很多时间的操作丢给背景做或拆开 11/04 00:10
16F:推 BM0108:受教了,感谢! 11/04 00:18
17F:→ logooo77:看起来是连线问题跟 dyno 数量多寡无关 11/04 01:32
18F:→ logooo77:你应该要在台湾这里弄台机器或空间做中介站 11/04 01:34
19F:→ logooo77:用来处理一些杂事 11/04 01:37
20F:→ logooo77:dyno 是用来平衡负载量,就像是餐厅的服务生 11/04 01:41
21F:→ logooo77:人员越多,就越能即时招呼客人 11/04 01:42
22F:→ logooo77:或做更多的事情 11/04 01:42
23F:→ logooo77:heroku 这三十秒是故意的,因为他们不希望程式很没有效率 11/04 01:47