我有以下服务器:
Intel® Xeon® E3-1270 v2 Single Processor - Quad Core Dedicated Server
CPU Speed: 4 x 3.5 Ghz w/ 8MB Smart Cache
Motherboard: SuperMicro X9SCM-F
Total Cores: 4 Cores + 8 Threads
RAM: 32 GB DDR3 1333 ECC
Hard Drive: 120GB
Smart Cache: 8MB
我正在使用 ubuntu 12.04 - nginx、php、mysql 和 ISPConfig 3。
在 ISPConfig 3 >> 网站设置下:
我有这个默认值:
PHP-FPM pm.max_children = 10
PHP-FPM pm.start_servers = 2
PHP-FPM pm.min_spare_servers = 1
PHP-FPM pm.max_spare_servers = 5
PHP-FPM pm.max_requests = 0
我的问题是上述变量的推荐设置是什么?因为我发现有些使用不同的设置。
答案1
最好的建议是什么?对其进行基准测试!
设置您的应用程序或安装某种 CMS(例如 Drupal,并在使用 Devel 生成大量内容和资料后使用搜索查询对其进行搜索),然后开始使用 Apache bench 或 siege 对其进行搜索。开始摆弄设置。
我个人认为以下是一个很好的起点:
pm = dynamic
pm.max_children = 8
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4
要了解有多少正在运行,请执行ps aux | grep php
答案2
开始是一条评论,但后来变得有点长。
推荐的设置是适合您的设置/流量的正确设置。
在 Linux 上,这个问题比在其他 Unixen 上要小,因为在 Linux 上分叉进程要快得多,但这确实会影响性能。实际上,您需要监视正在运行的 php 进程数并调整参数以尽量减少分叉新实例的需要(尽管可以争论的是,进程中的少量周转会减轻任何内存泄漏的影响)。
让 min_spare_servers 小于 start_servers 没有多大意义。