Як прочитати htop


9

У мене виникають проблеми з розумінням інформації, що відображається htop популярна заміна команди top Linux.

htop screen dump

У наведеному вище знімку екрана є багато перерахованих екземплярів java, але тільки батьківське використовує час процесора. Які інші?

Чому бари завантаження процесора показують такі зайняті ядра, коли стовпець CPU% показує, що не відбувається багато в усіх процесах? Фактично більшість часу вони рухаються без кореляції.

Чому середнє навантаження, зверху вправо, яке я припускаю, є історією 3 кроків, настільки низькою, коли ядра майже завжди зелені і виглядають зайнятими?

Чи буде хтось так люб'язно пояснити, як читати цю інформацію?

Дякую!


Я вніс деякі зміни, які дуже допомагають. Відображати потоки в кольорі diff, відображати назви рядків, назви оновлень процесу оновлення і, головним чином, змінюючи затримку на 2/10 секунди. Швидкість оновлення за замовчуванням просто показує велике відставання між лічильниками CPU та процесами.
Luke Puplett

1
Принаймні для середнього навантаження це не обов'язково є низьким значенням. Навантаження є по суті індикатором, якщо система повинна чекати щось зробити. Припустиме значення менше, ніж кількість ядер, в даному випадку 4. Таким чином, ці середні значення є розумними. Це останні 1, 5 і 15 хвилин. Докладніше див. У [Вікіпедії] ( en.wikipedia.org/wiki/Load_(computing))
ssmy

Відповіді:


5
  1. Що стосується "Завантажити" і CPU%, Вікіпедія має детальне пояснення і приклад, наступна часткова цитата

    Непрацюючий комп'ютер має навантажувальне число 0, і кожен процес, який використовує або чекає на ЦП (готову чергу або чергу виконання), збільшує кількість завантаження на 1. Більшість систем UNIX підраховують лише процеси, що виконуються (на CPU) або виконуються (чекають CPU). Проте Linux також включає в себе процеси в станах безперебійного сну (зазвичай чекають активності диска), які можуть призвести до помітно різних результатів, якщо багато процесів залишаються заблокованими в I / O через зайняту або застосовану систему введення / виводу. Це, наприклад, включає в себе блокування процесів через помилки NFS-сервера або уповільнення носіїв (наприклад, пристроїв зберігання даних USB 1.x). Такі обставини можуть призвести до збільшення середнього навантаження, що не відображає фактичного збільшення використання ЦП (але все ж дає уявлення про те, як довго користувачі повинні чекати).

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

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

    Бруски, можливо, зайняті рухом, але вони ніколи не досягають 100%, що вказує, що процесор / ядро ​​повністю використовується. Панель - це лише візуалізація% використання процесора, що становить 27%, 26.5%, 24.5%, 24.7% і 71.7%. Всі ядра процесора все ще мають владу "заощадити". Всі вони знаходяться під утилізацією.

    Повністю використана система 5 ядра / процесора буде мати навантаження 5 або вище.

  2. Що стосується рядків Java, вони є батьківськими (PID = 5073) і дочірніми процесами. Я не можу пояснити, чому батьки накопичують час самого процесора. Це дійсно залежить від внутрішньої логіки програми. Однак, відповідно до TIME +, ці дочірні процеси споживали час процесора, а останній (PID = 5074) накопичувався найбільше.


Чи можливо, що дочірні процеси - це потік JVM? Коли я встановлюю можливість показувати назви рядків, всі вони називаються однаковими. Я - програміст Windows + .NET, fyi.
Luke Puplett

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