PHP-FPM необычно партия порождения экземпляров

С нескольких дней наш веб-сервер имеет некоторые высокие пики загрузки вокруг каждого часы.

Веб-сервер является выделенным сервером с поршнем на 32 ГБ и 4 ядрами. Это запускает тяжелое веб-приложение на основе drupal с большим количеством хранивших данных и API отдыха.

На некотором времени процесс PHP-FPM, кажется, прекращает отвечать без любой причины (никакое определенное выполнение задачи или особый интенсивный трафик)

Вот моя конфигурация пула (я недавно увеличил число max_children, чтобы видеть, решает ли это проблему),

pm = dynamic
pm.max_children = 80
pm.start_servers = 25
pm.min_spare_servers = 10
pm.max_spare_servers = 40
pm.max_requests = 200
request_terminate_timeout = 50s

Вот некоторые снимки экрана нового пережитка, показывающие, что происходит, когда проблема происходит.

enter image description here

Вы видите число детей, порождающих сигнальную ракету в течение приблизительно 10 минут, затем спускаетесь назад к normals.

Какие-либо идеи о том, что могло вызвать те аварийные скачки?

[edit1]

Чтобы быть более конкретным по поводу системных спецификаций, сервер также выполняет NGINX, MySQL, MEMCACHED и ПОСТФИКС. 16 ГБ памяти выделяются mysql базам данных. ЦП является Intel(R) Xeon(R) CPU E3-1225 V2 3.20 ГГц

Для получения лучшего обзора использования сервера, когда проблема происходят можно проверить снимок экрана newrelic обзора

enter image description here

[edit2]

Вот то, как главный взгляд посреди одного из тех пика

top - 13:28:53 up 124 days,  2:15,  1 user,  load average: 64.25, 25.29, 12.02
Tasks: 177 total,  77 running, 100 sleeping,   0 stopped,   0 zombie
%Cpu(s): 99.9 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem:  32917328 total, 32257288 used,   660040 free,   236848 buffers
KiB Swap:  1046520 total,    90328 used,   956192 free,  8352948 cached

И спустя несколько минут после этого

top - 13:35:09 up 124 days,  2:21,  1 user,  load average: 5.43, 20.97, 16.33
Tasks: 149 total,   3 running, 146 sleeping,   0 stopped,   0 zombie
%Cpu(s): 47.2 us,  1.7 sy,  0.0 ni, 43.8 id,  6.4 wa,  0.0 hi,  0.8 si,  0.0 st
KiB Mem:  32917328 total, 30507792 used,  2409536 free,   236852 buffers
KiB Swap:  1046520 total,    90328 used,   956192 free,  8308028 cached

Также осуществленный проверка NGINX регистрируется, чтобы просмотреть, если у нас было внезапное увеличение запроса, что то время, вот результат этой команды:

grep "15/Sep/2015:13" access.log | сокращают-d [-f2 |, сокращает-d]-f1 | awk-F: '{Печатают дюйм за 2$: "3$}' | вид-nk1-nk2 | uniq-c | awk '{если (1$> 10) печатают 0$}'

 467 13:00
 463 13:01
 497 13:02
 421 13:03
 473 13:04
 471 13:05
 480 13:06
 390 13:07
 430 13:08
 430 13:09
 405 13:10
 449 13:11
 415 13:12
 451 13:13
 424 13:14
 476 13:15
 483 13:16
 398 13:17
 433 13:18
 474 13:19
 458 13:20
 434 13:21
 403 13:22
 408 13:23
 487 13:24
 440 13:25
 526 13:26
  70 13:27
 104 13:28
 373 13:29
 943 13:30
 706 13:31
 446 13:32
 447 13:33
 461 13:34
 427 13:35
 303 13:36
0
задан 1 June 2017 в 19:37
1 ответ

Я обычно работаю системным администратором в рекламной компании, которая использовала php-fpm на своих рекламных серверах. У нас было max_requests установлено значение 20,000 или что-то очень высокое. У них была проблема до того, как я начал, где load/memory/cpu будет скакать, как вы видите, а затем возвращаться вниз по циклам в течение дня. Это произошло из-за того, что почти все процессы php-fpm перезагружались, т.к. он почти одновременно достиг предела max_requests.

Возможно, вы столкнулись с той же проблемой. Мы решили эту проблему, запустив 4-5 мастер-процессов php-fpm на машину, и пошагово запустили процесс.

В конце концов, мы установили несколько экземпляров на 0 для max_requests, чтобы посмотреть, нужно ли запускать. Оказалось, что в приложении не было плохих утечек памяти, и используемая память на процесс php-fpm росла очень медленно. Это также было намного более случайным и мы использовали монитор для просмотра памяти каждого php-fpm мастера для просмотра использования памяти и если оно превысило определённый лимит, монитор перезапустил php-fpm

.
1
ответ дан 4 December 2019 в 16:49

Теги

Похожие вопросы