最近,我对我的服务器进行了一些更改,这增加了对服务器的 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 密集型的,而不是工作者密集型的,并且调整不会有任何帮助。