Я изо всех сил пытаюсь определить правильные настройки для моего сервера Ubuntu.
Он имеет 16 процессоров и 48 ГБ оперативной памяти. Однако, похоже, требуется время, чтобы ответить на запросы. Недавно я перешел на 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
с указанными выше настройками:
Прочие сведения о сервере:
Снимок экрана со статистикой моего балансировщика нагрузки, который показывает, что я не могу получать более 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