PHP-fpm 占用最多内存

PHP-fpm 占用最多内存

我的内存和交换内存大部分被 php-fpm 使用,导致服务器响应缓慢。以下是 top 命令的输出。请提出建议

在此处输入图片描述

另外我的 php-fpm conf 文件设置如下:

pm = ondemand
pm.max_children = 250
pm.process_idle_timeout = 3600s;
pm.max_requests = 500

答案1

php 工作池的内存消耗主要取决于两个因素:

  • 的极限pm.max_children
  • php.ini 内存限制memory_limit(似乎约为 1 Gb)。

这两个数字的乘积将为您提供池繁忙时的内存消耗量。

因此,基本上,您有三个选择:

  • 减少 php worker 的数量
  • 减少memory_limit
  • 增加运行 php 工作池的服务器数量(同时保持 php 池的总内存消耗限制在主机物理内存边界内)。

相关内容