Як знайти причину зростання навантаження сервера


12

У мене виникають проблеми з завантаженням сервера, і хоча я дещо досвідчений адміністратор 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. Типові завдання веб-сервера.

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

Ось графіка із завантаженням, процесором та IOStat:

Отже, питання: Що може спричинити повільне, але постійно зростаюче навантаження? І як я дізнаюся, що відповідає?

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


1
Опублікованих вами зображень більше не існує. Будь ласка, сміливо перезавантажте їх, якщо у вас ще є копії.
Майкл Хемптон

Відповіді:


6

Кожен процес зомбі додає 1,0 до навантаження. Можливо, ви спостерігаєте скупчення зомбі.


Так. Перевірте графік « Кількість процесів ».
Тедді

Якщо це було правильно, то введення тексту for N in {1..100} ; do sleep 60 & done ; exec sleep 500повинно бути достатньо, щоб викликати велике навантаження. Але це не так. Ця команда виробляє 100 зомбі, але навантаження на моєму комп’ютері залишилось нижче 1.
kasperd

5

Я знайшов відмінний натяк у відповіді на інше питання .

Шукаючи процеси у стані '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]

Отже, це, здається, є проблемою. Мені зараз потрібно з’ясувати, поки ці процеси зависають і як це виправити. Дякую всім.


Ця відповідь вирішила моє питання. Навантаження збільшується з 0,5 до 350 і продовжує зростати. Це було зумовлено процесами зомбі, які намагалися прочитати видалену віддалену папку.
Філіп Дельтейль

2

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

Цікаво, чи можете ви мати активність на додаток io, що також є фактором для завантаження сервера

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

іншим інструментом є dstat


Я додав графіку для IOStat. IO диска не збільшується в міру навантаження. Це те, на що ви прагнули?
Andreas Gohr

Ой і датчик виглядає корисно. Я мушу прочитати трохи більше про це.
Andreas Gohr

2

Якби це I / O, то він побачив би іоваїт (рожевий) на графіках процесора.


0

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


IO мені виглядає нормально. І це не пояснило б, чому навантаження повільно збільшується.
Andreas Gohr

-1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.