Как интерпретировать «верхний» вывод busybox?

8

Я использую BusyBox в небольшой встроенной системе ARM. Я пытаюсь прочитать вывод "top", в частности, для перечисленного процесса Python. Сколько реальной памяти использует этот процесс? И что означает VSZ? Система имеет только 64 МБ оперативной памяти.

Память: 41444K использовано, 20572K свободно, 0K shrd, 0K бафф, 18728K кэшировано
Процессор: 3% usr 3% sys 0% nic 92% бездействия 0% io 0% irq 0% sirq
Средняя нагрузка: 0,00 0,04 0,05 1/112 31667
  PID PPID USER STAT VSZ% VSZ% КОМАНДА ЦП
  777 775 python S 146 м 241% 3% / usr / bin / python -u - dpdsrv.py
SeanLabs
источник

Ответы:

4

VSZ(или VIRT, в зависимости от версии top) - это объем памяти, отображаемый в адресное пространство процесса. Он включает в себя страницы, поддерживаемые исполняемым файлом процесса и общими библиотеками, его кучу и стек, а также все, что он отображал.

В случае примера вывода, который вы показываете, виртуальный размер больше, чем объем физической памяти в системе, поэтому обязательно некоторые (большинство!) Страниц в адресном пространстве процесса физически не присутствуют в ОЗУ. Это не проблема: многие программы содержат большое количество кода и отображают множество общих библиотек, но на самом деле они используют только определенные части этого кода или, по крайней мере, используют только определенные части кода одновременно, что позволяет ядру отбрасываться неиспользованные части из памяти, когда они не используются, или даже никогда не загружать их в первую очередь.

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

Celada
источник