Thin + Nginx生产就绪组合RubyOnRails应用程序

我最近在我的部署服务器上安装了Nginx + Thin,但是我不确定在最后的请求和响应情况下如何执行。 可以说每秒1000 / req。

因此速度在10-100瑞克/每秒时很好

我想知道在请求/响应集群上​​正在处理更多的数据。

指导我:-)

如果你有一台服务器,我认为除了已经提到的所有东西外,主要的关键是不要吝啬它的规格。 试图让太多的东西太少,只是一个灾难的秘诀。

让我们开始监控你的精简实例,也是一个好主意,我从上帝开始,但是它在Ruby 1.8.6上泄漏了很多内存,所以我停止使用它来支持monit。 Monit是用CI相信写的,并且有一个很小的内存空间,所以我建议一个。

如果所有这些看起来好像让nginx和thin很好地玩,你可能需要考虑一个像Passenger或者LiteSpeed这样的解决方案。 我很少有这方面的经验,所以不能为他们提供任何财务建议。

多个精简的进程和nginx能够提供很多的速度,这取决于你的应用程序在做什么。 所以,这个问题将会是你的应用程序代码,你的应用程序服务器和数据库服务器的速度。

Scaling Rails屏幕截图最近已经深入介绍了Scaling Rails 。 我建议你从那里开始。 我的5步程序来扩展Rails将是:

  1. 第一步是让工具查看你的应用程序的速度。 当你不知道问题是什么时,不要花费时间优化应用程序中的所有内容。
  2. 能够处理大量请求/秒的最简单方法是使用页面缓存。
  3. 如果你不能这样做,缓存所有可能的东西(片段缓存,使用memcached缓存数据等),以加快你的应用程序。
  4. 之后,尽可能优化您的应用程序,快速地进行SQL查询,索引所有内容等。
  5. 如果你仍然需要更多的速度,那么就要抛出更多的硬件。 获得一个强大的数据库服务器,一堆应用程序服务器,并通过它们代理您的请求。 您也可以从这里开始,但这只会延迟优化过程。