Вопрос: Как найти причину для увеличения загрузки сервера


У меня проблемы с загрузкой на моем сервере, и хотя я несколько опытный администратор Linux, у меня сейчас нет идей.

Проблема заключается в медленной, но неуклонно увеличивающейся нагрузке на сервер без каких-либо очевидных причин.

Сервер представляет собой двухъядерный процессор AMD Athlon (tm) 64 X2 6000+ с 6 ГБ оперативной памяти. Он работает с Debian Stable с Linux gir 2.6.26-2-amd64 # 1 SMP Wed Aug 19 22:33:18 UTC 2009 x86_64 GNU / Linux.

Сервер в основном запускает Lighttpd, несколько процессов FastCGI PHP и базу данных MySQL. Типичные задачи веб-сервера.

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

Вот графика, показывающая загрузку, CPU и IOStat:

Итак, вопрос: что может вызвать медленно, но все возрастающую нагрузку? И как я узнаю, что несет ответственность?

Обновление: я забыл упомянуть, когда я перезагружаю сервер, загрузка будет примерно до 0,3 до 0,6 и начнет медленно подниматься вверх в течение следующих недель.


11
2017-11-03 09:43


Источник


Изображения, которые вы разместили, больше не существуют. Не стесняйтесь повторно загружать их, если у вас все еще есть копии. - Michael Hampton♦


Ответы:


Каждый процесс зомби добавляет 1,0 к нагрузке. Возможно, вы увидите скопление зомби.


6
2017-11-03 11:41



Да. Проверить "Количество процессов". - Teddy
Если это было правильно, то набрав for N in {1..100} ; do sleep 60 & done ; exec sleep 500 должно быть достаточно, чтобы вызвать высокую нагрузку. Но это не так. Эта команда производит 100 зомби, но нагрузка на мой компьютер осталась ниже 1. - kasperd


Я нашел отличный намек на ответ вопрос,

Поиск процессов в состоянии «D» показывает четыре процесса PHP, которые, похоже, довольно долго висеть, соответствующие «шагам» в кривой нагрузки:

#> ps aux | awk '$8 ~ /D/  { print $0 }'
wiki      6651  0.0  0.0      0     0 ?        D    Oct04   0:41 [php-cgi]
bugs      6731  0.0  0.0      0     0 ?        D    Oct27   0:14 [php-cgi]
manpages  7536  0.0  0.0      0     0 ?        D    Oct30   0:21 [php5-cgi]
wiki     23847  0.0  0.0      0     0 ?        D    Oct06   1:32 [php-cgi]

Так что это, кажется, проблема. Теперь мне нужно выяснить, когда эти процессы зависают и как их исправить. Всем спасибо.


4
2017-11-04 11:51





Я предполагаю, что сервер IO голоден, возможно, вы должны добавить статистику iotop к графикам

Интересно, можете ли вы иметь активность в приложении для i приложения, что также является фактором загрузки сервера

http://rt.wiki.kernel.org/index.php/I/Otop_utility

другим инструментом является dstat


2
2017-11-03 09:59



Я добавил графику для IOStat. При загрузке диск IO не увеличивается. Это то, к чему вы стремились? - Andreas Gohr
Ох и dstat выглядит полезно. Я должен прочитать немного больше об этом. - Andreas Gohr


Если бы это был I / O, тогда он увидел бы iowait (розовый) на графиках процессора.


2
2017-11-03 14:42





Такие проблемы часто возникали из жесткого диска, который недостаточно быстро для обслуживания данных, необходимых для базы данных MySQL и HTTP-сервера. Вы должны посмотреть на команду iostat


0
2017-11-03 11:28



IO выглядит нормально для меня. И это не объясняет, почему нагрузка медленно увеличивается. - Andreas Gohr


В общем, на самом деле неплохо иметь высокую нагрузку на сервер; это означает, что вы не сидите без дела и делаете меньше, чем могли бы в противном случае. 80% -90% нагрузки вашей общей емкости (с некоторой «взрывной» комнатой) - это то, что обычно требуется. Я бы рекомендовал проверить вывод mpstat и vmstat. В частности, первые 2 числа из vmstat могут дать вам более содержательную информацию о том, как «резервное копирование» вы в терминах процессов в очереди выполнения. Последний столбец («wa») вывода vmstat может рассказать вам, если и на какой срок вы ожидаете завершения ввода-вывода. Размер очереди выполнения и время ожидания ввода-вывода часто коррелируются. Также проверьте sar (из пакета sysstat): это дает вам подробное представление о том, что происходит в течение определенного периода времени; метрики, которые он записывает, очень тщательны.


0
2017-11-07 23:49