Как мне прочитать htop
У меня проблемы с пониманием информации, отображаемой htop
популярная замена для топовой команды Linux.
На приведенном выше снимке экрана показано много экземпляров Java, но только родительский использует процессорное время. Какие другие?
Почему полосы загрузки ЦП показывают такие занятые ядра, когда столбец ЦП% показывает, что не все происходит во всех процессах? На самом деле, они движутся без корреляции большую часть времени.
Почему средняя нагрузка в правом верхнем углу, которая, как я полагаю, является трехступенчатой историей, настолько мала, когда ядра почти всегда зеленые и выглядят занятыми?
Будет ли кто-то так любезно объяснить, как читать эту информацию?
Спасибо!
1 ответ
Относительно "Load" и CPU%, в Википедии есть подробное объяснение и пример, ниже приводится частичная цитата
Свободный компьютер имеет загрузочный номер 0, и каждый процесс, использующий или ожидающий ЦП (очередь готовности или очередь выполнения), увеличивает загрузочный номер на 1. Большинство систем UNIX считают только процессы, работающие (на ЦП) или работающие (ожидающие CPU) состояния. Однако Linux также включает процессы в непрерывном спящем состоянии (обычно в ожидании активности диска), что может привести к заметно отличающимся результатам, если многие процессы остаются заблокированными в операциях ввода-вывода из-за загруженности или зависания системы ввода-вывода. Это, например, включает в себя блокирование процессов из-за сбоя сервера NFS или из-за медленного носителя (например, устройства хранения USB 1.x). Такие обстоятельства могут привести к повышению средней нагрузки, что не отражает фактического увеличения загрузки ЦП (но все же дает представление о том, как долго пользователям приходится ждать).
Системы вычисляют среднее значение нагрузки как экспоненциально демпфированное / взвешенное скользящее среднее числа нагрузки. Три значения средней нагрузки относятся к прошедшим, пяти и пятнадцати минутам работы системы.
Для систем с одним ЦП, которые связаны с ЦП, можно представить среднее значение нагрузки как процент использования системы в течение соответствующего периода времени. Для систем с несколькими ЦП необходимо разделить число на количество процессоров, чтобы получить сопоставимый процент.
Бары могут быть заняты движением, но они никогда не достигают 100%, что указывает на то, что процессор / ядро полностью используется. Столбец представляет собой только визуализацию% загрузки процессора, которая составляет 27%, 26,5%, 24,5%, 24,7% и 71,7%. Все ядра ЦП по-прежнему имеют возможность "сэкономить". На данный момент все они используются недостаточно.
Полностью используемая система с 5 ядрами / процессорами будет иметь нагрузку 5 или выше.
Что касается строк Java, они являются родительскими (PID=5073) и дочерними процессами. Я не могу объяснить, почему родитель накапливает больше всего времени процессора. Это действительно зависит от внутренней логики программы. Однако, согласно TIME+, эти дочерние процессы потребляют процессорное время, при этом последний из них (PID=5074) накапливается больше всего.