php-fpm 的内存使用量不断增加吗?

php-fpm 的内存使用量不断增加吗?

php-fpm 似乎分配了越来越多的内存,尽管请求量时高时低。无法发布多张图片,所以我把它们放在这里

正如您在图片的 uri 中看到的,一个图片显示了 nginx 请求,显示出明显的下降和峰值。其他图片,即 php-fpm 内存和每个子项的平均内存似乎根本不遵循相同的模式。只有重新启动 php-fpm 才会产生效果,即使这样,我也不能说我注意到性能有任何变化。
系统很好,响应时间很好,一切都很好,只是好奇这是否是预期的行为,以及它是否有性能优势或应该避免(通过降低 max_requests 或其他什么?)。

系统运行 Debian GNU/Linux 6.0 Squeeze,AMD64。PHP 版本 5.3.6。PHP 5.3.6


pool.d/www.conf:

下午.max_children = 50
pm.start_servers = 30
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 1024


自从新安装以来,我在 php-fpm.log 中得到了这些内容:

[2011 年 6 月 28 日 14:45:39] 警告:[pool www] 子进程 1893 在启动后 22296.217811 秒因信号 9 (SIGKILL) 而退出
[2011-06-28 14:45:39] 通知:[pool www] 子进程 18391 已启动
[2011 年 6 月 28 日 14:45:39] 警告:[pool www] 子进程 1903 在启动后 22296.213677 秒因信号 9 (SIGKILL) 而退出
[2011-06-28 14:45:39] 通知:[pool www] 子进程 18392 已启动
[2011 年 6 月 28 日 14:45:39] 警告:[pool www] 子进程 1904 在启动后 22296.213757 秒因信号 9 (SIGKILL) 而退出
[2011-06-28 14:45:39] 通知:[pool www] 子进程 18393 已启动
[2011 年 6 月 28 日 14:45:39] 警告:[pool www] 子进程 1905 在启动后 22296.214307 秒因信号 9 (SIGKILL) 而退出
[2011 年 6 月 28 日 14:46:20] 注意:fpm 正在运行,pid 18410
[2011-06-28 14:46:20] 通知:已准备好处理连接
[2011 年 6 月 28 日 15:10:04] 通知:终止...
[2011-06-28 15:10:04] 通知:退出,再见!
[2011 年 6 月 28 日 15:10:04] 注意:fpm 正在运行,pid 1742
[2011-06-28 15:10:04] 通知:已准备好处理连接
[2011 年 6 月 28 日 15:10:22] 通知:终止...
[2011-06-28 15:10:22] 通知:退出,再见!
[2011 年 6 月 28 日 15:10:22] 注意:fpm 正在运行,pid 2016
[2011-06-28 15:10:22] 通知:已准备好处理连接
[2011 年 6 月 28 日 15:28:04] 通知:终止...

答案1

一些想法:

  1. 降低 fpm 设置,然后根据需要增加:

    pm.max_children = 10 # concurrent children's
    pm.start_servers = 2
    pm.min_spare_servers = 2
    pm.max_spare_servers = 4
    pm.max_requests = 300 # till restart

  2. 降低 nginx 设置。

  3. 安装pecl-apc(Debian 包是php5-apc)。

  4. 更新你的 php/nginx 版本到最新稳定版本

您的服务器规格是什么?

答案2

检查您有多少空闲的 RAM(也许停止 php-fpm 来计算这个)以及 php-fpm 进程通常为您的 webapp 占用多少内存(查看topps),然后设置 pm.max_children = 可用 RAM / php-fpm 进程 RAM ,否则您将耗尽内存。

相关内容