php5-fpm 峰值,配置错误?

php5-fpm 峰值,配置错误?

最近,我对我的服务器进行了一些更改,这增加了对服务器的 AJAX 调用的数量。

应用程序“速度”下降了很多。Web 服务器是带有 php5-fpm 模块的 nginx

如果我在服务器控制台上运行“top”命令,我会看到:

  • 5 到 8 个 php5-fpm 进程,占用大约 70-80% 的 CPU 使用率

配置如下:(仅显示重要部分)

/etc/nginx/nginx.conf

worker_processes  8;

events{
    worker_connections  1024;
    multi_accept off;
}

http{
    sendfile        on;
    keepalive_timeout  30;
    tcp_nodelay        off;
    client_max_body_size 64m;
    gzip  on;
}

/etc/php5/fpm/pool.d/www.conf

pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.process_idle_timeout = 5s;
pm.max_requests = 400

服务器规格:

  • 24GB 内存
  • Inter Xeon 8 核

您觉得这个问题怎么样?是不是因为服务器配置不理想导致的?您建议该服务器采用哪种配置?

答案1

使用 24 GB 的 RAM 时,你应该增加这些设置

pm.max_children
pm.start_servers
pm.min_spare_servers
pm.max_spare_servers

改为更适合你的服务器的设置。你当前的设置处于一种“在家玩起来很舒服”的设置。

例如,参见“调整 PHP5-FPM”这里然后进行计算。我猜首先要将数字乘以 10 左右。

无论如何,您的 PHP 应用程序仍然可能是线性 CPU 密集型的,而不是工作者密集型的,并且调整不会有任何帮助。

相关内容