1

Я работаю с программным обеспечением, и пока оно работает, я хочу знать, сколько процессорного времени или оперативной памяти оно занимает ... наряду с другими интересными вещами. Для этого мне нужно точно знать, что означают такие слова, как VIRT , SHR , N т.д. Я пытался найти его в Google, но не смог. Может кто-нибудь, пожалуйста, направить меня к источнику, где я могу прочитать об этом подробно для top команды?

Также, насколько я понимаю, %CPU показывает загрузку процессора, а %MEM показывает процент используемой оперативной памяти. Это верно?

Кроме того, я не знаю, как это возможно, что одновременно 3-4 пользователя используют 100% процессорного времени, а иногда кто-то даже использует 400%. Что это значит?

1 ответ1

2

Вот пример вывода top:

top - 14:21:40 up 7 days, 21:57,  7 users,  load average: 0.13, 0.04, 0.04
Tasks: 107 total,   2 running, 105 sleeping,   0 stopped,   0 zombie
Cpu0  :  1.0% us,  1.0% sy,  0.0% ni, 96.1% id,  1.9% wa,  0.0% hi,  0.0% si
Cpu1  :  1.0% us,  1.0% sy,  0.0% ni, 98.0% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:   2050756k total,  2034236k used,    16520k free,    22252k buffers
Swap:  2097144k total,    87108k used,  2010036k free,  1609212k cached
  • Первая строка легко интерпретируется, только почему не существует трех разных средних значений нагрузки: эти значения используют три разные временные шкалы.
  • Вторая строка: сводка задач, сгруппированных по состоянию
  • Линия CPU имеет два режима, либо

    Cpu(s): 1.0% us, 0.5% sy, 0.0% ni, 98.5% id, 0.0% wa, 0.0% hi, 0.0% si

    где все ядра процессора суммированы или как в примере выше, где каждое ядро имеет свою собственную строку. Вы можете переключаться между этими режимами с помощью 1. Каждое ядро может быть использовано до 100%, поэтому с двумя ядрами общее максимальное значение составляет 200%.

    Двухбуквенные сокращения выделены жирным шрифтом в следующем списке (c & p из более старого ответа):

    • us er: обычные процессы, выполняющиеся в пользовательском режиме
    • п с: niced процессы , исполняющие в пользовательском режиме
    • sy stem: процессы, выполняющиеся в режиме ядра
    • id le: большие пальцы
    • io wa it: ожидание завершения ввода-вывода
    • irq: обслуживание прерываний [жесткие прерывания привет ]
    • softirq: обслуживание softirqs [мягкие прерывания si ]
    • ул еа: непроизвольное ожидания
  • Mem и Swap предназначены для физической оперативной памяти и подкачки соответственно.

  • Список процессов подробно объясняется на странице руководства пользователя (2a.ОПИСАНИЕ полей). Поскольку ваша справочная страница кажется неполной, ниже приведен отрывок; Есть также копии полной справочной страницы в Интернете. По умолчанию эти столбцы отображаются (настроить с помощью f):

    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

    Чтобы ответить на ваш конкретный вопрос об использовании ЦП: Если процесс выполняется параллельно, то есть может использовать несколько ядер ЦП, использование 400% означает, что 4 ядра используются полностью.


PID - Идентификатор процесса: уникальный идентификатор процесса задачи, который периодически переносится, но никогда не перезапускается с нуля.

PPID - Pid родительского процесса: идентификатор процесса родителя задачи.

RUSER - реальное имя пользователя: реальное имя пользователя владельца задачи.

UID - Идентификатор пользователя: эффективный идентификатор пользователя владельца задачи. Blockquote

ПОЛЬЗОВАТЕЛЬ - Имя пользователя: эффективное имя пользователя владельца задачи.

GROUP - Group Name: эффективное имя группы владельца задачи.

TTY - Controlling Tty: имя управляющего терминала. Обычно это устройство (последовательный порт, pty и т.д.), С которого был запущен процесс, и которое оно использует для ввода или вывода. Тем не менее, задача не должна быть связана с терминалом, в этом случае вы увидите '?'отображается.

PR - Приоритет: приоритет задачи.

NI - Хорошее значение: Хорошее значение задачи. Отрицательное приятное значение означает более высокий приоритет, тогда как положительное приятное значение означает более низкий приоритет. Ноль в этом поле просто означает, что приоритет не будет корректироваться при определении диспетчеризации задачи.

P - последний использованный процессор (SMP): число, представляющее последний использованный процессор. В реальной среде SMP это, вероятно, будет часто меняться, так как ядро намеренно использует слабое сродство. Кроме того, сам факт запуска top может нарушить эту слабую привязку и побудить большее количество процессов менять процессоры чаще (из-за дополнительной нагрузки на процессорное время).

% ЦП - загрузка ЦП: доля задачи, затраченная с момента последнего обновления экрана, в процентах от общего времени ЦП. В реальной среде SMP, если «Режим Irix» выключен, top будет работать в «Режиме Solaris», где загрузка ЦП задачи будет разделена на общее количество процессоров. Вы можете переключать режимы «Irix /Solaris» с помощью интерактивной команды «I».

ВРЕМЯ - время ЦП: общее время ЦП, использованное задачей с момента ее запуска. Когда «Накопительный режим» включен, для каждого процесса указывается время процессора, которое он и его «мертвые потомки» использовали. Вы переключаете «Накопительный режим» с помощью «S», который является параметром командной строки и интерактивной командой. См. Интерактивную команду «S» для получения дополнительной информации об этом режиме.

ВРЕМЯ + - время ЦП, сотые: то же самое, что и «ВРЕМЯ», но отражает большую детализацию в сотых долях секунды.

% MEM - использование памяти (RES): используемая в настоящее время доля доступной физической памяти задачи.

VIRT - виртуальный образ (КБ): общий объем виртуальной памяти, используемой задачей. Он включает в себя весь код, данные и общие библиотеки, а также страницы, которые были заменены. VIRT = SWAP + RES

SWAP - размер подкачки (КБ): часть подкачки общего образа виртуальной памяти задачи.

RES - Резидентный размер (КБ): физическая память без перестановки, используемая задачей. RES = CODE + DATA

КОД - Размер кода (КБ): объем физической памяти, выделяемой для исполняемого кода, также известный как размер «резидентного набора текста» или TRS.

ДАННЫЕ - Данные + размер стека (КБ): объем физической памяти, выделенный для выполнения, отличного от исполняемого кода, также известный как размер «резидентного набора данных» или DRS.

SHR - Размер общей памяти (КБ): объем общей памяти, используемой задачей. Он просто отражает память, которая потенциально может использоваться другими процессами.

nFLT - Количество сбоев страниц: количество основных сбоев страниц, возникших для задачи. Ошибка страницы возникает, когда процесс пытается прочитать или записать виртуальную страницу, которая в данный момент отсутствует в его адресном пространстве. Основная ошибка страницы - когда доступ к диску связан с тем, чтобы сделать эту страницу доступной.

nDRT - количество грязных страниц: количество страниц, которые были изменены с момента последней записи на диск. Грязные страницы должны быть записаны на диск, прежде чем соответствующая область физической памяти может быть использована для какой-либо другой виртуальной страницы.

S - Состояние процесса Состояние задачи, которое может быть одним из: D = непрерывный сон, R = бег, S = сон, T = отслеживание или остановка, Z = зомби. Задачи, показанные как выполняющиеся, должны более правильно рассматриваться как «готовые к запуску» - их task_struct просто представлены в очереди выполнения Linux. Даже без настоящего SMP-компьютера вы можете увидеть множество задач в этом состоянии в зависимости от интервала задержки вершины и приятного значения.

Команда - Командная строка или Имя программы: отображение командной строки, используемой для запуска задачи, или имя связанной программы. Вы можете переключаться между командной строкой и именем с помощью «c», который является одновременно параметром командной строки и интерактивной командой. Когда вы выбрали отображение командных строк, процессы без командной строки (например, потоки ядра) будут отображаться только с именем программы в скобках, как в этом примере: (mdrecoveryd) Любая форма отображения подвержена потенциальному усечению если он слишком длинный, чтобы поместиться в текущей ширине этого поля. Эта ширина зависит от других выбранных полей, их порядка и текущей ширины экрана. Примечание. Поле / столбец «Команда» является уникальным в том смысле, что оно не имеет фиксированной ширины. При отображении в этом столбце будет выделена вся оставшаяся ширина экрана (максимум до 512 символов), чтобы обеспечить потенциальный рост имен программ в командные строки.

WCHAN - Sleeping in Function: в зависимости от наличия карты ссылок ядра ('System.map') в этом поле будет отображаться имя или адрес функции ядра, в которой в данный момент находится задача. При выполнении задач в этом столбце будет отображаться тире ('-'). Примечание. При отображении этого поля собственный рабочий набор top будет увеличен более чем на 700 КБ. Единственным средством сокращения этих накладных расходов будет остановка и перезапуск top.

Флаги - Флаги задачи: в этом столбце представлены текущие флаги планирования задачи, которые выражены в шестнадцатеричном формате и с подавленными нулями. Эти флаги официально задокументированы в. Менее формальные документы также можно найти на экранах «Выбор полей» и «Заказ полей».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .