Сбой Apache с PHP-FPM через некоторое время

  • Автор темы Wondersoft
  • 43
  • Обновлено
  • 12, May 2024
  • #1
Привет! Недавно я установил новый сервер и перенес на него довольно загруженный форум (4,5 миллиона сообщений, обычно 500-1000 пользователей онлайн за каждые 30 минут). Я использую Invision 4.4.4, который требует достаточно ресурсов.

База данных (MySQL 5.7) работает на одном выделенном сервере, Apache работает на другом выделенном сервере.

На веб-сервере не работают другие сайты, а сервер базы данных поддерживает только этот сайт. Оптимизируя сервер, я попробовал переключиться с PHP-CGI на PHP-FPM.

Если первоначально сделать это, Apache довольно быстро выйдет из строя, по-видимому, из-за исчерпания MaxRequestWorkers.

Я увеличил MaxClients до 2500 и MaxRequestWorkers до 2000. Я также немного увеличил параметры пула PHP-FPM (максимальное количество запросов до 200, время простоя процесса до 10 и максимальное количество детей до 10).

Казалось, это решило проблему, но примерно через 12 часов Apache снова перестал отвечать на запросы, и я не увидел никаких активных процессов PHP-FPM.

Перезапуск Apache, похоже, не помог, и только когда я снова переключился на PHP-CGI, сервер снова начал отвечать на запросы.

Переход с PHP-CGI на PHP-FPM — это хорошо, поскольку он снизил нагрузку с 3,0 до примерно 1,0, поэтому я хотел бы использовать PHP-FPM, если смогу.

Я попробовал это во второй раз (переключившись обратно на PHP-FPM), но примерно через 12 часов он снова вышел из строя, и мне пришлось снова переключиться на PHP-CGI.

Я мог бы попытаться увеличить MaxClients и MaxRequestWorkers дальше, но я не знаю, поможет ли это — похоже, я просто накладываю временный пластырь на более глубокую проблему.

Я просматривал журналы, когда Apache в последний раз выходил из строя (или, по крайней мере, зависал), и видел массу сообщений вроде этого:

 

[Wed Jul 03 22:20:16.028372 2019] [proxy_fcgi:error] [pid 12645] (104)Connection reset by peer: [client 110.249.201.217:10762] AH01075: Error dispat

ching request to :

[Wed Jul 03 22:20:16.028452 2019] [proxy_fcgi:error] [pid 12652] [client 111.225.148.7:11198] AH01067: Failed to read FastCGI header

[Wed Jul 03 22:20:16.028491 2019] [proxy_fcgi:error] [pid 12652] (104)Connection reset by peer: [client 111.225.148.7:11198] AH01075: Error dispatch

ing request to :

[Wed Jul 03 22:20:16.028512 2019] [proxy_fcgi:error] [pid 12651] [client 125.209.235.178:37891] AH01067: Failed to read FastCGI header

[Wed Jul 03 22:20:16.028586 2019] [proxy_fcgi:error] [pid 12651] (104)Connection reset by peer: [client 125.209.235.178:37891] AH01075: Error dispat

ching request to :

[Wed Jul 03 22:20:16.028620 2019] [proxy_fcgi:error] [pid 12150] [client 110.249.202.82:63448] AH01067: Failed to read FastCGI header

[Wed Jul 03 22:20:16.028642 2019] [proxy_fcgi:error] [pid 12527] [client 54.36.148.120:38628] AH01067: Failed to read FastCGI header

Код (разметка): запуск PHP 7.2.19 и Apache 2.4.39. CENTOS 7.6 и WHM v80.0.20. Также на этом сервере запущен Redis для кэширования.

Машина имеет 32 ГБ оперативной памяти, а сайт работает на быстром SSD-накопителе NVMe.

Его основная задача — просто запустить веб-сервер для этого сайта, а также электронную почту.

Заранее благодарим за любую информацию и/или советы по отладке.

Wondersoft


Рег
07 Nov, 2014

Тем
1

Постов
1

Баллов
11
  • 06, Jun 2024
  • #2
Достаточно ли у вас ресурсов на сервере, особенно оперативной памяти? Обычно приложения перегружают память, что приводит к зависанию работников PHP. Увеличение ресурсов или оптимальная конфигурация могут помочь.
 

DARKAN1


Рег
05 May, 2012

Тем
2

Постов
4

Баллов
24
  • 07, Jun 2024
  • #3
Какие-нибудь медленные запросы к базе данных выполняются, когда Aace выходит из строя? Если запущены какие-либо моды, попробуйте отключить их по одному при запуске PHP-FPM, оставьте его после отключения каждого мода на 12 часов и посмотрите, не падает ли он, возможно, это мод, которому не нравится текущая конфигурация сервера.
 

hoske


Рег
21 Mar, 2013

Тем
0

Постов
2

Баллов
2