LINUX.ORG.RU
ФорумAdmin

Ошибка 502 Nginx + PHP8.1-FPM

 


0

1

Прошу помощи обитателей форума. Регулярно падает ошибка 502 ничего с ней не могу поделать. параметры пула изменялись в различные стороны, но это ничего не меняет

1GB 1CPU

pm = dynamic
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_children = 1000
pm.process_idle_timeout = 10s;

[25-May-2023 12:46:12] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 28 total children

Перемещено hobbit из general


У меня что-то подобное было когда крутилось всё на говнохостинге. Как удалось выяснить мускул медленно работал, с адовыми таймингами. Не уверен что в Вашем случае это верное направление.

erfea ★★★★★
()

Причём тут пхп и тем более nginx? У тебя скрипты лагают вот и не успевает всем отвечать, а на каком языке они написаны тут не важно. Почему лагают - может быть любая причина, зависит от того что именно в них делается. Может и из-за базы быть как выше писали.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от sdllll

я включил slow query log в php-fpm, там нет запросов дольше 3 сек

[25-May-2023 13:07:06] WARNING: [pool www] child 23933, script '/var/www/html/public/index.php' (request: "GET ?p=tables") executing too slow (2.263847 sec), logging
[25-May-2023 13:07:06] NOTICE: child 23933 stopped for tracing
[25-May-2023 13:07:06] NOTICE: about to trace 23933
[25-May-2023 13:07:06] NOTICE: finished trace of 23933
sdllll
() автор топика
Ответ на: комментарий от sdllll

Пхп не падает а занят. Ну поставь min_spare_servers = 20 / max_spare_servers = 50 чтобы он зря фигней не занимался с пересозданием процессов.

Можешь в access_log настроить чтоб он писал сколько времени на запрос ушло и выявить какие запросы лагают (или может их просто очень много - тебя атакуют). Ну и slowlog настроить - в нём будут подсказки где именно лаги.

Ещё можешь сделать status_path и в нём смотреть кто занял все слоты. (с параметрами ?html&full в браузере)

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 4)
Ответ на: комментарий от firkax

Именно падает, на больших значениях max_spare_servers и children в лог php-fpm падает строка terminated, я уменьшил количество до указанных в первом посте, terminated перестали падать

Видимо какой то параметр влияет, возможно max_requests или iddle

sdllll
() автор топика
Ответ на: комментарий от sdllll

Terminated то не падение а кто-то его принудительно убил. Вероятно ты что-то превышаешь и хостер убивает лишние процессы. Или это request_terminate_timeout в настройках пхп. И как она выглядит?

firkax ★★★★★
()

pm.max_children = 1000

Это конечно сильно. Даже если ты даёшь пыху по-минимуму, типа 128Мб на процесс, то 1000 процессов будут жрать ~128Гб и это без накладных расходов самого php-fpm и остального барахла.

no-such-file ★★★★★
()