Чому навантаження велика, незважаючи на те, що ні процесор, ні диск не використовуються


20

Я отримую такий результат від top:

Cpu(s): 43.8%us, 32.5%sy,  4.8%ni,  2.0%id, 15.6%wa,  0.2%hi,  1.2%si,  0.0%st
Mem:  16331504k total, 15759412k used,   572092k free,  4575980k buffers
Swap:  4194296k total,   260644k used,  3933652k free,  1588044k cached

вихід з iostat -xk 6показує наступне:

Device: rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda       0.00   360.20   86.20  153.40  1133.60  2054.40    26.61     1.51    6.27   0.77  18.38
sdb       0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdd      22.60   198.80   17.40   31.60   265.60   921.60    48.46     0.18    3.70   1.67   8.20
sdc      16.80   218.20   22.20   23.40   261.60   966.40    53.86     0.21    4.56   1.49   6.78

Виходячи з вищесказаного, схоже, щось потрібно перевантажувати. Але що?

Запитання

  1. Якщо це не жорсткий диск чи ЦП, то що?
  2. Схоже, 15,6% часу процесора витрачають на очікування. Чого саме можна було чекати?

2
які технічні характеристики процесора і скільки коштує навантаження?
вересень

Завантаження понад 100
user4951

Навантаження відносно кількості процесорних та процесорних ядер, що таке специфікація процесора у вашій системі?
вересень

Відповіді:


49

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

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


Щоб з'ясувати, які процеси є проблемою:

Виконати top -H( -Hдозволяє показувати потоки)

Комбінації клавіш залежать від версії.

З новішим верхом (3.3 і після):

Натисніть, fщоб відкрити параметри поля.
За допомогою клавіш зі стрілками перейдіть до S = Process Statusта натисніть s.
Натисніть, qщоб повернутися на головну сторінку.
Натисніть Shift+, Rщоб змінити сортування.

Зі старшим верхом (до 3.3):

Натисніть Shift+, oщоб відкрити параметри сортування.
Потім wсортувати за станом процесу.
Потім Enterповернутися на головну сторінку.
Потім Shift+, Rщоб змінити сортування.

Потім у Sстовпці шукайте процеси, які мають Dабо R(вони тепер повинні бути вгорі). Це будуть процеси, що сприяють навантаженню системи.

Якщо процес показує D, це означає "безперебійний сон". Зазвичай це відбувається, коли процес очікує на введення / виведення (диск, мережа тощо).
Якщо процес показує a R, це означає, що він просто робить звичайні обчислення.


Щоб дізнатися більше про те, що роблять ці процеси:

З новішим верхом (3.3 і після):

Натисніть, fщоб відкрити параметри поля.
Використовуйте клавіші зі стрілками для переходу WCHAN = Sleeping in Functionта натисніть, dщоб увімкнути це.
Потім qповернутися на головну сторінку.

Зі старшим верхом (до 3.3):

Натисніть fпотім , yщоб включити WCHANполе.

Якщо у вашій системі є необхідні параметри ядра, а файл wchan присутній у вашій системі (я забуваю, де він знаходиться і як його називають) , WCHANполе повинно показати вам, яку функцію ядра виконує процес (якщо поле просто показує -або у ?всьому, у вас немає підтримки).
Трохи google тут, і ви повинні бути на шляху.

Якщо у вас немає підтримки wchan, ви завжди можете спробувати straceпроцес, щоб дізнатися, що вони роблять, але це складний шлях.


Зазвичай я просто натискаю стрілку вліво, щоб змінити сортування.
Немо

2

Процеси короткого терміну експлуатації, такі як компіляція завдань topабо збої в циклі, часто не помітні в інструментах моніторингу, таких як або йостат тощо.

У таких випадках допоможе система аудиту Linux

Винуватець, наприклад, цикл відмови

while :; do gcc /dev/zero ; done >/dev/null 2>&1

Щоб використовувати auditd / auditctl:

apt-get install auditd
auditctl -a task,always
ausearch -i -sc execve

викрадені з журналу всі запуски процесу


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

0

У мене була ситуація, коли кріплення NFS відключились, і, на жаль, я помилився і не застосував опцію м'якого монтування, таким чином, на моєму сервері Linux було безліч процесів, включаючи моніторинг, lsof і навіть bash сеанси ....

Після демонтажу зламаних кріплень система виглядала перевантаженою:

top - 00:03:48 up 15 days, 14:56,  3 users,  load average: 29, 21, 20

Це виглядало жахливо, але використання процесора менше 15% і немає дискового вводу / виводу. Я отримав декілька порад пройти через PS, але це не допомогло, як виглядало, що процеси в основному сплять.

Тоді я man psврятував мою ніч для сну, і після розслідування я виявив дуже важливі прапори СТАТУС, на які слід було ознайомитися, оскільки згодом виявив, що вони застрягли в процесах.

Виконати:

ps -e v

і шукати процеси, які є Dабо SLв стовпці STAT. Це були схожі на процеси зомбі, але не були ідентифіковані як Z -зомбі.

D - означає активність диска (вводу / виводу), але також якщо ви запускаєте ps -e vкілька разів, а також iostat 3не бачите жодної активності, це вказує на те, що це застрягло вводу / виводу .

SL - це означає, що в пам'яті цього процесу є заблоковані сторінки, тому, якщо ви можете визначити, що цей процес не повинен вести себе таким чином, це наступний кандидат, якщо він тримається на довший період без змін.

Після розслідування я потім убив одного за одним, і середнє завантаження системи стало нормальним.

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