PHP-FPM на рабочем сервере под Debian 6?

Мирослав Донцов
Мирослав Донцов
  • Сообщений: 7
  • Последний визит: 26 марта 2025 в 12:53

Существует сервер под Debian 6, который не должен надолго упасть. На нем есть nginx и php-cgi, запущенный через start-stop-daemon, таким образом создан FastCGI.

Но когда появился большой трафик (примерно 2-3 000 одновременных соединений), появилась проблема ошибки 502, которая возникает даже не смотря на небольшую нагрузку на процессор и память.

Изученный материал подсказал, что PHP-FPM гораздо лучше справляется с задачей, но как его поставить, чтобы не нарушить существующую экосистему?

Известно, что он есть на dotdeb.org, но его я применять опасаюсь из-за проблем с несовместимостью пакетов — при попытке поставить что-нибудь для PHP он выдает запрос на удаление важных вещей.

Можно ли как-то по-другому установить php5-fpm на Debian 6?

UPD, 2012-05-06. Было много сделано для решения этой проблемы. Сейчас php5-fpm установлен, процент ошибки 502 близок к нулю, в комментариях можно посмотреть пути решения проблемы.

Дополнительно можно сказать, что можно установить php5-fpm и новую версию nginx из репозиториев unstable и testing:

#UNSTABLE
deb http://ftp.ru.debian.org/debian/ unstable main non-free contrib
deb-src http://ftp.ru.debian.org/debian/ unstable main non-free contrib

#TESTING
deb http://ftp.ru.debian.org/debian/ testing main non-free contrib
deb-src http://ftp.ru.debian.org/debian/ testing main non-free contrib

Чтобы исключить ошибку 502, нужно подобрать оптимальные параметры php5-fpm и оптимизировать приложение. К примеру, в моем и еще одном случае помогло исключение сессий или переопределение стандартного механизма с исключением записи их в файлы.

Также PHP 5.4 работает заметно быстрее, и php5-fpm справляется с помощью меньшего количества процессов. 

АгроТехно
АгроТехно
  • Сообщений: 5
  • Последний визит: 26 марта 2025 в 00:54

Правильно делаете, что не доверяете dotdeb.org. Я лично ничего больше от них ставить не буду, был негативный опыт, причем два раза.

Поставить php-fpm можно вот таким способом: zagirov.name/debian-testing-install-php5-fpm

Т.е. по сути этот пакет одинаков для любого php 5.3. Достаточно просто убить внутри пакета зависимость от версии и можно ставить. Я это проделал у себя, все работает.

Редактировалось: 3 раза (Последний: 26 марта 2025 в 00:52)
Иван Терешенко
Иван Терешенко
  • Сообщений: 35
  • Последний визит: 15 апреля 2025 в 18:17

php-fpm это не серебряная пуля которая решить данную проблему. Очевидно же, что суть проблем в том, что бэкэнд не успевает переварить такой всплеск нагрузки. Как я понял, при это есть свободные ресурсы, значит нужно крутить настройки сервера.


Увеличте backlog бэкэнда, запросы которые он не сможет принять буду ставиться в очередь. Но увлекаться этим не стоит, пользователь не будет у вас ждать, пока его запрос из backlog будет бэкэндом взят и обработан. Значит смотрите в сторону ускорения приложения. Сколько времени генериться страница? Если ли страницы которые одинаковы для всех? Выносите их в memcached и забирайте самим nginx-ом, не дергайте лишних раз бэкэнд. Включены ли акселераторы в духе XCache? Все ли скрипты при этом в кэше? Как обстоят дела с соединения к базе, сколько по времени они занимаются? Используется ли кэширование на этом уровне? К примеру, у меня в случае забора ответа от СУБД страница в среднем на одном проекте генерится ~15-20 мс, если данные забираются из кэша в роли которого работает Redis, то величина падает до ~2-10 мс, т.е. до 10 раз. И бэкэнд готов обрабатывать следующий запрос.

В общем обращаю внимание, что установка php-fpm чудесным образом ситуацию может не изменить, хотя возможно сгладит её.

Капитан
Капитан
  • Сообщений: 5
  • Последний визит: 5 апреля 2025 в 22:26

Если вы контролируете обстановку, можно собрать и поставить php-fpm самому. Желательно адекватным способом, а не make install. (то есть собрать deb-пакет и дать менеджеру пакетов самому поставить его)

Владимир Соколов
Владимир Соколов
  • Сообщений: 31
  • Последний визит: 26 марта 2025 в 00:57

А чем плох dotdeb? у меня и в убунте и в дебианах разных работает хорошо.

в притом на реальном боевом проекте с 5000-6000 в сутки пользователями, в онлайне правда не как у ТС но всёж.
сервачок купил на ебее за 100 баксов 3 года назад.

тоже валился от нагрузки, настроил кэширование на nginx (это уже после всяких мемкэшедов, еАццелераторов, и прочих штук кэширующих мускул запросы)

Илья Ряжин
Илья Ряжин
  • Сообщений: 10
  • Последний визит: 26 марта 2025 в 00:57

Может, это не ваш случай, но после 700 конкурентных запросов, у меня на сервере тоже происходил затык.

Дело было в в создании файлов сессий на диск, после переноса сессий в редис от этого избавился.

Авторизуйтесь, чтобы писать на форуме.

Заявка на услуги DST

Наш специалист свяжется с вами, обсудит оптимальную стратегию сотрудничества,
поможет сформировать бизнес требования и рассчитает стоимость услуг.

Адрес

Ижевск, ул. Воткинское шоссе, д. 170 Е, Технопарк Нобель, офис 1117

8 495 1985800
Заказать звонок

Режим работы: Пн-Пт 10:00-19:00

info@dstglobal.ru

Задать вопрос по почте

Укажите ваше имя
Укажите ваше email
Укажите ваше телефон