![如何找出 Apache 2.4 PHP-FPM mpm_worker 的最佳设置?](https://linux22.com/image/701153/%E5%A6%82%E4%BD%95%E6%89%BE%E5%87%BA%20Apache%202.4%20PHP-FPM%20mpm_worker%20%E7%9A%84%E6%9C%80%E4%BD%B3%E8%AE%BE%E7%BD%AE%EF%BC%9F.png)
我正在努力找出我的 Ubuntu 服务器的正确设置。
它有 16 个 CPU 和 48GB 内存。但是,它似乎需要一段时间才能响应请求。最近,我切换到了 PHP-FPM 和 Apache 2.4 mpm_worker。
我的 mpm_worker.conf 文件:
<IfModule mpm_worker_module>
ServerLimit 250
StartServers 10
MinSpareThreads 75
MaxSpareThreads 250
ThreadLimit 64
ThreadsPerChild 32
MaxClients 8000
MaxRequestsPerChild 10000
</IfModule>
我的/etc/php5/fpm/pool.d/www.conf
设置:
pm = static
pm.max_children = 1200
pm.start_servers = 16
pm.min_spare_servers = 1
pm.max_spare_servers = 36
pm.max_requests = 800
找出上述设置的最佳值的最佳方法是什么,这两个配置文件如何相互关联?使用 Apache 2.4 和 mod_php,您只需编辑 mpm_prefork.conf 文件 - 但是,使用此设置,有两个单独的配置文件似乎具有相似的指令名称。
其他服务器详细信息:
- 它是一个具有 SSD 作为磁盘空间的云服务器。
- 同一台服务器上有多个网站。但是,其他主机似乎响应很快。
- 它是一个使用 KPM 的 Digital Ocean 小滴。
- 当我的网站上有 2,800 名用户时,请求可能需要长达 6 秒的时间。尽管我使用 Digital Ocean 的负载均衡器将请求分配到两台服务器(两台服务器的配置相同,并且速度同样缓慢),但情况仍然如此。
这是我的负载均衡器统计信息的屏幕截图,显示我似乎无法达到每秒 430 个以上的请求:
mybench.sh 测试结果(不包括dl速度):
CPU model : Intel(R) Xeon(R) CPU E5-2630L v2 @ 2.40GHz
Number of cores : 16
CPU frequency : 2399.998 MHz
Total amount of ram : 48303 MB
Total amount of swap : 1023 MB
System uptime : 6 days, 13:52,
I/O Tests...
IOPING Statistics:
10 requests completed in 9.0 s, 4.2 k iops, 16.3 MiB/s
min/avg/max/mdev = 139 us / 240 us / 447 us / 86 us
I/O Read Speed by hdparm...
Timing cached reads: 15068 MB in 2.00 seconds = 7541.02 MB/sec
Timing buffered disk reads: 1096 MB in 3.00 seconds = 364.79 MB/sec
I/O Read Speed, 100MB Testfile sequential read: 3400 MB/s
I/O Read/Write + CPU, 'gzip -9' 100MB Testfile: 87.1795 MB/s
I/O Write Speed 100MB 4KB Blocks: 324 MB/s
I/O Write Speed 100MB 16KB Blocks 434 MB/s
I/O Write Speed 100MB 64KB Blocks 404 MB/s
I/O Write Speed 100MB 1MB Blocks 433 MB/s