对针对Heroku上托管的应用程序执行负载测试后,我发现大多数数据库密集型请求需要50-200毫秒,具体取决于负载。无论负载如何,它都不会变慢。但是,看似随机,请求将彻底超时(30秒或更长)。
在Heroku上,为什么一个性能相对较高的查询/请求可以在10次中完美地工作8次,并且当负载增加时,彻底超时为10次中的2次?
如果这对Heroku本身来说似乎是一个问题,我想首先回答一个问题,即“坏代码”是否会以某种方式导致这个问题 - 或者它是否显然是一个问题。
更多信息:
多个Dynos 雪松堆栈 专用Heroku DB(16个连接,1.7 GB RAM,1个comp。单位) Rails 3.0.7
提前致谢。
答案 0 :(得分:5)
由于您有多个dynos和一个专用的数据库实例,并且每月为其服务支付数百美元,您应该问Heroku
编辑:我应该补充一点,当您检查日志时,您可以查找一条显示“路由”的行。这是接收HTTP请求并将其发送到您的应用的Heroku路由层。您可以添加这些内容以查看在应用外花费的时间。不幸的是,我不知道为负载测试获取大量这些日志是多么容易。