gpt4 book ai didi

ruby-on-rails - nginx 比 Apache2 减少了多少内存占用?

转载 作者:数据小太阳 更新时间:2023-10-29 08:25:00 25 4
gpt4 key购买 nike

我想知道将 Rails 应用程序从 Apache2 + Passenger 移植到 Nginx + Passenger 是否值得。我们这样做的主要原因是释放 RAM 或处理给定 RAM 量的更多请求。

有谁知道 Nginx + Passenger 在使用 RAM 方面的效率大约提高了多少?

最佳答案

答案高度依赖于:

  • 您启用的网络服务器模块
  • 您使用的 Ruby 实现(例如 Ruby 企业版与 MRI)
  • 您应用的流量模式。

设置 nginx + Passenger 非常简单。只需在云服务器或虚拟机上快速安装每个环境,然后针对它们运行一些基准测试工具。

不过,一般来说,最大的 RAM 消耗者是您的 Rails 应用程序,而不是 Web 服务器。如果您担心 RAM 使用情况,最好将时间花在比较 Ruby 实现或减少代码使用的 gem/插件/库的数量,或减少使用的 Web 服务器模块的数量上。

有人 did a benchmark每个并发连接的 Nginx 与 Apache 内存利用率。 Nginx 是明显的赢家。但应该注意的是,该图上的最高内存利用率在大约 4000 个并发连接时仅为 ~40MB。在大多数情况下,40MB 甚至比单个 Rails 实例的占用空间还要小,而且您不太可能在单个服务器上实现 4000 个并发 Rails 请求。所以次要切换到 Nginx 是值得的,但主要是,你应该切换到 Ruby Enterprise Edition如果您还没有这样做,那么请尝试减少您的应用程序的内存占用,因为您的 Rails 应用程序将使用比这两个 Web 服务器中的任何一个都多得多的内存。

例如,我在生产环境中运行 Apache/Passenger/REE,即使 REE 改进了内存占用,我的 Rails 应用程序使用的内存也是 Apache 的 13 倍,据passenger-memory-stats 报道.

the growth rate of memory usage vs concurrent connections is starkly larger with apache

关于ruby-on-rails - nginx 比 Apache2 减少了多少内存占用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5598495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com