我正在使用标准的Ruby-on-Rails WEBBRICK
服务器。
我正在测试并且如果我在非常密集的脚本上同时有两个或三个连接(我让它完全执行而没有超时)它们是否正常堆叠(即完成下一个任务一旦前一个完成 - 许多同时连接但是一次只处理一个)?
1)这种行为是否正常?
2)我如何逃避这一点,Thin
是否值得推荐?
答案 0 :(得分:0)
rails服务器(webrick)实际上仅用于开发中的本地测试;单个实例运行,请求将相互阻塞。 Thin是一个更好的选择,因为它知道如何处理多个进程。有些人在Thin for production服务器前面使用Apache或Nginx。乘客是一个类似的选择,也很受欢迎。
所以是的,安装Thin以获得更真实的测试。
P.S。如果您在Amazon EC2上托管,他们的微型和小型实例只有一个CPU,所以即使您有多个进程接受请求,如果它们受到CPU的约束,它们也会表现为互相阻塞。 (这可能与你的问题无关,但我生命中的好几天都花在了这个问题上: - )。