С нами с 28.10.08
Сообщения: 101
Рейтинг: 106
|
Добавлено: 19/12/14 в 11:43 |
Нужен совет.
При смешных 150 запросах в секунду на FreeBsd 8.4 + php 5.5 (php-fpm) + nginx
Процессы php-fpm выжирают весь CPU. Такое ощущение что не работает Zend opcache (хотя включен и должен работать)
На Linux машинах такой проблемы не наблюдалось, но данный проект с инфраструктурой на FreeBsd и переехать не получится.
Xhprof показал нагруз основной дают подключаемые вендоры composer (которые уже как только можно оптимизированы).
Последние большие проекты все работают на Debian или Ubuntu и таких проблем нет, гугл ничего конкретного не дал.
Может кто сталкивался с подобным?
|
|
|
|
С нами с 30.04.04
Сообщения: 602
Рейтинг: 293
|
Добавлено: 19/12/14 в 12:20 |
Выполни плиз "netstat -Lan", там будет строчка с кол-вом коннектов к сокету, с которым работает php-fpm, скинь ее плиз.
Кроме этого конфиг php-fpm засвети плиз. Интересует всё с префиксом pm.
|
|
|
|
С нами с 28.10.08
Сообщения: 101
Рейтинг: 106
|
Добавлено: 19/12/14 в 12:36 |
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
|
|
|
|
С нами с 30.04.04
Сообщения: 602
Рейтинг: 293
|
Добавлено: 19/12/14 в 12:50 |
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шного? Замеряли?
|
|
|
|
С нами с 28.10.08
Сообщения: 101
Рейтинг: 106
|
Добавлено: 19/12/14 в 12:58 |
Цитата: | А ты когда выполнял netstat проблемы на сервере были или нет (те, которые ты описывал)? |
Не совсем, так как все сейчас через nginx перекешировано, сейчас отключил кеш, нагруз сразу вырос до 50% (восьмиядерный Intel Xeon E3-1230) и держится примерно в этом диапазоне, в пиках до кеширования выжирал до 100%, LA совсем безумные данные показывало 80+
Сейчас выполнил команду - по сокетам не поменялась картина (при 50% CPU)
|
|
|
|
С нами с 28.10.08
Сообщения: 101
Рейтинг: 106
|
Добавлено: 19/12/14 в 13:05 |
Цитата: | какое примерно среднее время ответа скрипта phpшного? |
да по xhprof до оптимизации загрузки composer вендоров выдавал 23 секунды , что явно говорило о том что в байткод ничего не кешится,
после оптимизации 309 миллисекунд, но это все равно много для выборки и отдачи json файлов (иногда без доступа к бд).
Я грешу на Zend Opcache/ Zend Optimizer, который "как-то не так" работают. Сейчас вот ищу/ставлю мониторинг работы этих приблуд, чтобы проверить.
|
|
|
|
С нами с 30.04.04
Сообщения: 602
Рейтинг: 293
|
Добавлено: 19/12/14 в 13:23 |
Zona писал: | да по xhprof до оптимизации загрузки composer вендоров выдавал 23 секунды , что явно говорило о том что в байткод ничего не кешится,
после оптимизации 309 миллисекунд, но это все равно много для выборки и отдачи json файлов (иногда без доступа к бд).
Я грешу на Zend Opcache/ Zend Optimizer, который "как-то не так" работают. Сейчас вот ищу/ставлю мониторинг работы этих приблуд, чтобы проверить. |
Сколько же у тебя там либ композер насобирал? Скрипт при отдаче json'а юзает все эти либы? Автолоадер свой или композеровский? У тебя там случайно никакой xdebug или xhprof для каждого запроса не включен?
|
|
|
|
С нами с 28.10.08
Сообщения: 101
Рейтинг: 106
|
Добавлено: 19/12/14 в 13:31 |
condom007:
Цитата: |
Сколько же у тебя там либ композер насобирал? Скрипт при отдаче json'а юзает все эти либы? Автолоадер свой или композеровский? |
Автолоадер теперь прикомпилен и там теперь нет проверок file_exists.
используется Silex (тот что на компонентах Symfony2) в качестве фреймворка, естественно он грузит все.
Данное приложение - это API для мобильных приложений и плагинов для браузеров.
То есть где-то отдается статический json, где-то с измененной структурой, где-то формируется из данных в БД.
Аналогичные приложения запускались под линуксом и таких проблем не возникало.
|
|
|
|
С нами с 14.11.05
Сообщения: 56
Рейтинг: 177
|
Добавлено: 19/12/14 в 14:17 |
Уверен, что на линуксе точно такие же конфиги php-fpm пула?
150 rps - это примерно по 50 каждые 300 мс = время отдачи контента. pm.max_children=32 может не хватать. Смотри php-fpm.log
Также pm.max_requests = 200 не очень хорошо. Процессы будут почти каждую секунду перезапускаться. Если память не течет, то можно поставить pm.max_requests = 0.
|
|
|
|
С нами с 30.04.04
Сообщения: 602
Рейтинг: 293
|
Добавлено: 19/12/14 в 14:48 |
А мы уже посмотрели пул очередей, он пустой. Поэтому спаунер, имхо, можно исключить из подозрений.
|
|
|
|
С нами с 28.10.08
Сообщения: 101
Рейтинг: 106
|
Добавлено: 19/12/14 в 15:08 |
На линуксе такие же настройки.
Господа, спасибо за подсказки - буду разбираться дальше
|
|
|
|
С нами с 30.04.04
Сообщения: 602
Рейтинг: 293
|
Добавлено: 19/12/14 в 16:40 |
Отпишись потом плиз из-за чего проблема была. Тоже интересно.
|
|
|
|