如何找出 Apache 2.4 PHP-FPM mpm_worker 的最佳设置?

如何找出 Apache 2.4 PHP-FPM mpm_worker 的最佳设置?

我正在努力找出我的 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 文件 - 但是,使用此设置,有两个单独的配置文件似乎具有相似的指令名称。

top使用上述设置的屏幕截图:顶部

其他服务器详细信息:

  • 它是一个具有 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

相关内容