Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Проблемы с FreeBsd + php-fpm
Новая тема
Ответить
цитата
19/12/14 в 11:43
Zona
Нужен совет.
При смешных 150 запросах в секунду на FreeBsd 8.4 + php 5.5 (php-fpm) + nginx
Процессы php-fpm выжирают весь CPU. Такое ощущение что не работает Zend opcache (хотя включен и должен работать)
На Linux машинах такой проблемы не наблюдалось, но данный проект с инфраструктурой на FreeBsd и переехать не получится.
Xhprof показал нагруз основной дают подключаемые вендоры composer (которые уже как только можно оптимизированы).
Последние большие проекты все работают на Debian или Ubuntu и таких проблем нет, гугл ничего конкретного не дал.
Может кто сталкивался с подобным?
цитата
19/12/14 в 12:20
condom007
Выполни плиз "netstat -Lan", там будет строчка с кол-вом коннектов к сокету, с которым работает php-fpm, скинь ее плиз.
Кроме этого конфиг php-fpm засвети плиз. Интересует всё с префиксом pm.
цитата
19/12/14 в 12:36
Zona
condom007:
Some tcp sockets may have been created.
unix 0/0/8192 /tmp/fastcgi_sock
pm.start_servers = 8
pm.min_spare_servers = 8
pm.max_spare_servers = 32
pm.max_children=32
pm.process_idle_timeout = 10s
pm.max_requests = 200
pm.status_path = /status
цитата
19/12/14 в 12:50
condom007
Zona писал:
condom007:
Some tcp sockets may have been created.
unix 0/0/8192 /tmp/fastcgi_sock
pm.start_servers = 8
pm.min_spare_servers = 8
pm.max_spare_servers = 32
pm.max_children=32
pm.process_idle_timeout = 10s
pm.max_requests = 200
pm.status_path = /status
А ты когда выполнял netstat проблемы на сервере были или нет (те, которые ты описывал)?
И еще, какое примерно среднее время ответа скрипта phpшного? Замеряли?
цитата
19/12/14 в 12:58
Zona
Цитата:
А ты когда выполнял netstat проблемы на сервере были или нет (те, которые ты описывал)?
Не совсем, так как все сейчас через nginx перекешировано, сейчас отключил кеш, нагруз сразу вырос до 50% (восьмиядерный Intel Xeon E3-1230) и держится примерно в этом диапазоне, в пиках до кеширования выжирал до 100%, LA совсем безумные данные показывало 80+
Сейчас выполнил команду - по сокетам не поменялась картина (при 50% CPU)
цитата
19/12/14 в 13:05
Zona
Цитата:
какое примерно среднее время ответа скрипта phpшного?
да по xhprof до оптимизации загрузки composer вендоров выдавал 23 секунды
, что явно говорило о том что в байткод ничего не кешится,
после оптимизации 309 миллисекунд, но это все равно много для выборки и отдачи json файлов (иногда без доступа к бд).
Я грешу на Zend Opcache/ Zend Optimizer, который "как-то не так" работают. Сейчас вот ищу/ставлю мониторинг работы этих приблуд, чтобы проверить.
цитата
19/12/14 в 13:23
condom007
Zona писал:
да по xhprof до оптимизации загрузки composer вендоров выдавал 23 секунды
, что явно говорило о том что в байткод ничего не кешится,
после оптимизации 309 миллисекунд, но это все равно много для выборки и отдачи json файлов (иногда без доступа к бд).
Я грешу на Zend Opcache/ Zend Optimizer, который "как-то не так" работают. Сейчас вот ищу/ставлю мониторинг работы этих приблуд, чтобы проверить.
Сколько же у тебя там либ композер насобирал? Скрипт при отдаче json'а юзает все эти либы? Автолоадер свой или композеровский? У тебя там случайно никакой xdebug или xhprof для каждого запроса не включен?
цитата
19/12/14 в 13:31
Zona
condom007:
Цитата:
Сколько же у тебя там либ композер насобирал? Скрипт при отдаче json'а юзает все эти либы? Автолоадер свой или композеровский?
Автолоадер теперь прикомпилен и там теперь нет проверок file_exists.
используется Silex (тот что на компонентах Symfony2) в качестве фреймворка, естественно он грузит все.
Данное приложение - это API для мобильных приложений и плагинов для браузеров.
То есть где-то отдается статический json, где-то с измененной структурой, где-то формируется из данных в БД.
Аналогичные приложения запускались под линуксом и таких проблем не возникало.
цитата
19/12/14 в 14:17
lalex
Уверен, что на линуксе точно такие же конфиги php-fpm пула?
150 rps - это примерно по 50 каждые 300 мс = время отдачи контента. pm.max_children=32 может не хватать. Смотри php-fpm.log
Также pm.max_requests = 200 не очень хорошо. Процессы будут почти каждую секунду перезапускаться. Если память не течет, то можно поставить pm.max_requests = 0.
цитата
19/12/14 в 14:48
condom007
lalex писал:
А мы уже посмотрели пул очередей, он пустой. Поэтому спаунер, имхо, можно исключить из подозрений.
цитата
19/12/14 в 15:08
Zona
На линуксе такие же настройки.
Господа, спасибо за подсказки - буду разбираться дальше
цитата
19/12/14 в 16:40
condom007
Zona писал:
Отпишись потом плиз из-за чего проблема была. Тоже интересно.
Новая тема
Ответить
Эта страница в полной версии