我们正在使用Neustar来测试我们的服务器如何处理负载。我们的目标是达到大约 3000 个并发用户。
我们有一个非常简单的 php 应用程序(没有框架,由 nginx 提供,使用 mysql)可以毫无问题地处理这个问题。无论用户如何,响应时间几乎都在 300 毫秒以上。
使用 Rails、puma 和 nginx 进行相同的测试,响应时间非常糟糕。在大约 500 个用户时,响应时间开始攀升至 1 秒,然后在 1000 左右时相对线性地攀升至 4 秒左右,在 2000 年左右为 6 秒。
当我检查日志时,我收到的报告表明我们在更短的时间内做出了响应:
Completed 200 OK in 8.8ms (Views: 0.2ms | ActiveRecord: 4.9ms)
Started GET "/sessions/319/questions/poll.json" for IPADDRESS at 2013-12-30 22:17:28 +0000
Processing by QuestionsController#poll as JSON
Parameters: {"session_id"=>"319"}
Started GET "/sessions/319/questions/poll.json" for IPADDRESS at 2013-12-30 22:17:28 +0000
Processing by QuestionsController#poll as JSON
Parameters: {"session_id"=>"319"}
Completed 200 OK in 436.0ms (Views: 208.8ms | ActiveRecord: 212.6ms)
Processing by QuestionsController#poll as JSON
Parameters: {"session_id"=>"319"}
Started GET "/sessions/319/questions/get_current.json" for IPADDRESS at 2013-12-30 22:17:28 +0000
Started GET "/sessions/319/questions/poll.json" for IPADDRESS at 2013-12-30 22:17:28 +0000
Processing by QuestionsController#get_current as JSON
Completed 200 OK in 125.2ms (Views: 48.2ms | ActiveRecord: 63.4ms)
我们对这整件事有点陌生,我不禁觉得我们错过了一些非常基本的东西,因为这似乎完全不合时宜。
如果我能提供更多有用的信息,请告诉我。
任何我们错过的帮助、建议、明显的设置部分,将不胜感激。
谢谢你。