LINUX.ORG.RU

Большая заргузка от PHP, как найти виновных?

 , ,


0

2

Имеется вот такая картина

http://www.awesomescreenshot.com/image/183320/f9831607a9b5168e32a473eea97b8051

Сайт wordpress 13 000 постов на сайте, 1000 уников в сутки.

Сервер:

Объем диска 80 ГБ Тип диска SSD Память 12288 МБ Процессор 2 x 2500 МГц

nginx + apache fcgi

Как искать причину?


1000 уников в сутки.

80 ГБ Тип диска SSD Память 12288 МБ Процессор 2 x 2500 МГц

Не фига себе WP жрет!

pi11 ★★★★★
()

Как вариант, убрать apache и перейти на nginx+php-fpm.

Или постотреть, что там в том apache: prefork или worker (последнее лучше).

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

Как вариант, убрать apache и перейти на nginx+php-fpm.

При 1000 униках в сутки можно хоть на встроенном в PHP сервере сидеть. И ещё останется пара порядков производительности в резерве :) Там что-то другое. Что конкретно — тут уже надо логи смотреть, профилирование через xhprof или, если не поможет, xdebug делать и т.п.

Вообще, может, там не WordPress шалит, а бэкдор какой-нибудь :)

KRoN73 ★★★★★
()

При 1000 юников в сутки вероятность 7 одновременных соединений крайне мала, смотри access.log, может парсит кто-то, либо есть подозрение на дырявый wordpress.

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

Вообще, может, там не WordPress шалит, а бэкдор какой-нибудь :)

Все может быть. Как то понять какой скрипт выполняется возможно?

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

30 тыщ уников, 60тыщ материалов. 2 ядра, 2 гига, 40гб ссд (вроде). nginx + php-fpm.

Нагрузка далеко не пиковая, запас есть. Но у меня Drupal 7.

WP конечно решето и костыли, но не думаю, что на столько....

Sora ★★
()

на самом деле фраза «1000 уников» — мало говорит о том какое число запросов в минуту...

например если сайт сильно интересный и его читатели зачитывают до дыр — то запросов в минуту много...

но всё равно не прям уж так много, чтобы заниматься МЕГАоптимизациями (как уже и говорили выше).

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от RaDiSt

lsof, strace. Сеть проверь, может твой сервер стал заложником ботнета и кого-то пытается досить или наоборот тебя парсят.

Alternating_Current
()
Ответ на: комментарий от Sora

на столько, причём ужас, особенно если программисту хамили и полностью не заплатили.

erzent ☆☆
()
Ответ на: комментарий от KRoN73

1k уников — конечно не нагрузка, но apache — тот ещё монстр.

Мну от него совсем отказался. (В последнее время у мнея всё больше нагрузка от телевидиния, а там и 1k rps не редкость.)

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

apache тут вряд ли причина, а вот программист которому не заплатили обещанную вначале сумму % на 70, вообще надо бы zabbix и мониторинг процессов сделать и сети.

erzent ☆☆
()

Мне кажется что жрет сам php, и в частности в фоне запускаются какие-то cron-задачи. Возможно долго база отрабатывает и куча php процесов ждет залоченую таблицу.
Нужно смотреть логи, а также atop, lsof, top

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

zabbix стоит? как ты вообще без мониторингов работаешь?

erzent ☆☆
()
Ответ на: комментарий от RaDiSt

Как то понять какой скрипт выполняется возможно?

xhprof или xdebug могут разложить логи по каждому запуску. Соответственно, будешь смотреть, что вообще запускается. xdebug даёт более подробную информацию, но почти на порядок (раз в 7-9) снижает скорость работы PHP даже когда выключен (т.е. загружается xdebug.so, но не активируется). xhprof по информации беднее, но не грузит систему. И результат можно смотреть прямо на сайте, не выкачивая логи на десктоп.

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

но apache — тот ещё монстр

Если правильно готовить, то сносно выходит. Но всё равно не лучше nginx, так что смысла напрягаться нет :)

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

Это нормально, но вообще-то многовато, поставь поменьше и посмотри где отвалится. Хватает 128M

если среда позволяет, то попробуй это (xdebug required):

http://derickrethans.nl/xdebug-and-tracing-memory-usage.html

и/или еще:

kde-base/kcachegrind или сделай файлик для него, потом покрути где есть возможность.

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

Это брут wp-login.php, ситуация распространенная и простейшая.

Закрыт паролем через htpasswd

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

xhprof помог. Нашелся плагин который гадил в бд заданиями для вордпресовского крона.

В принципе полегчало, дальше уже принцип ясен. Всем спасибо.

RaDiSt
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.