大多数Ruby应用程序服务器只运行一个Ruby进程(并且Ruby有一个全局解释器锁,使多线程毫无意义),这意味着它一次只能处理一个请求.至少可以说,这不会给你很好的表现.
这种情况有解决方法有两种:要么你运行多个Ruby应用程序服务器,并把负载平衡器或反向代理在他们面前的,如Nginx的或Apache中的Mongrels或瘦服务器的包的前面(你运行的进程数反映您将能够并行处理的请求数).或者运行Passenger,它是一个Apache或Nginx模块,用于管理可随负载变化而动态增长和缩小的应用程序池.第一个选项为您提供了更多配置选项,但第二个选项更易于管理.你想要哪一个取决于你的用例.
当然还有其他解决方案,但它们适用于更具体的用例.例如,您可以编写一个性能非常高的应用程序并使用Thin部署它 - 但它要求您编写一个事件驱动的应用程序.您无法部署Rails应用程序并期望获得相同的性能.
| 归档时间: |
|
| 查看次数: |
1901 次 |
| 最近记录: |