LINUX.ORG.RU
решено ФорумAdmin

Постоянно по ночам падает php

 


1

1

Приветствую. Постоянно по ночам падает php, в логе наблюдаю: WARNING: [pool www] server reached max_children setting (1000), consider raising it настройки:

group = nginx
listen = /var/run/php-fpm.sock
listen.backlog = 10000
listen.acl_groups = nginx
listen.allowed_clients = 127.0.0.1
pm = ondemand
pm.max_children = 1000
pm.start_servers = 16
pm.min_spare_servers = 16
pm.max_spare_servers = 32
pm.process_idle_timeout = 10s;
;pm.max_requests = 200
Из php стоит: php 7.1 и memcached. Все задания из cron, которые могли создавать нагрузку удалены. Никак не могу понять почему это происходит. Заранее благодарю за помощь



Последнее исправление: mrxk (всего исправлений: 1)

Задания в кроне, если они вызывают php, а не ломятся на сайт, никак не влияют на php-fpm.

pm.max_children = 1000

Серьёзно? Стартуем с 16, фиксируем на 32 и максимум 1000? Памяти-то хватит? Откуда 1000 набегает?

Warning в логе, это не падение.

Ну и для общего развития, например, https://guillaume.moigneu.com/blog/optimize-nginx-and-php-fpm-max_children. Статья старенькая, но направление верное.

WARNING ★★★★
()
Ответ на: комментарий от WARNING

Я в курсе, что это значение велико, но оно проблемы не решает, поставлю 200, выйдет ошибка на 200, поставлю на 2000, выйдет ошибка на 2000. Памяти у меня 32 гб. monit перегружает php т.к. считает, что он перестает отвечать:

[MSK Dec 19 02:07:23] error    : Resource temporarily unavailable
[MSK Dec 19 02:07:23] error    : 'php-fpm' failed protocol test [DEFAULT] at /var/run/php-fpm.sock -- Cannot create unix socket for /var/run/php-fpm.sock
[MSK Dec 19 02:07:23] info     : 'php-fpm' trying to restart
[MSK Dec 19 02:07:23] info     : 'php-fpm' stop: /etc/init.d/php-fpm
[MSK Dec 19 02:07:25] info     : 'php-fpm' start: /etc/init.d/php-fpm
[MSK Dec 19 02:08:25] info     : 'php-fpm' connection succeeded to /var/run/php-fpm.sock
А вот хз откуда оно там набегает. То ли кто-то выкачивает по ночам сайты, то ли хз что.

mrxk
() автор топика

Ты это, в логи вебсервера посмотри. Может по ночам на тебя набигает какой-то бешеный поисковый бот.

anonymous
()
Ответ на: комментарий от mrxk

смотри slowlog (который в php-fpm), смотри количество запросов, что именно запрашивают и т.д. Найди откуда набегает, там и найдёшь ответы на все вопросы. А то может у тебя на главной sleep(10).

WARNING ★★★★
()
Ответ на: комментарий от WARNING

глянул в slowlog (который в php-fpm). Оказалось, что в это время работал скрипт на php, который оптимизировал таблицы mysqli_query($link, «optimize table my_tables»). По всей вероятности он и вешал mysql, в связи с чем php переставал отвечать, а monit его перегружал. Ранее переехал с mysql 5.1 на последнюю mariadb, с myisam на aria и innodb. Видимо данная команда вызывает ступор в mariadb. Благодарю всех откликнувшихся альтруистов.

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

Оказалось, что в это время работал скрипт на php, который оптимизировал таблицы mysqli_query($link, «optimize table my_tables»).

Лицорука. Это же надо наделать столько ошибок сразу. Талант, однако. Надеюсь, ты всё осознал и так делать больше не будешь.

WARNING ★★★★
()
Последнее исправление: WARNING (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.