Как определить сколько памяти занимает процесс

Линукс – довольно гибкая штука и задачи здесь можно выполнить разными способами. Сегодня мы рассмотрим, как узнать сколько ОЗУ используется определенным процессом.

Сделаем это на примере процесса веб-сервера apache.

897110 ? S 0:00 /usr/sbin/httpd.itk -k start

Команда ps

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

Командой ps -p <PID> v, где <PID> - идентификатор процесса, в нашем случае - это число 897110. Получим следующий вывод:

# ps -p 897110 v

PID    TTY STAT TIME MAJFL TRS DRS    RSS   %MEM COMMAND
897110 ?   S    0:04 0     342 387153 35176 0.0  /usr/sbin/httpd.itk -k start

ОЗУ будет представлено в процентном соотношении к общему количеству доступной памяти. К сожалению, в данном примере, этот процент крайне мал и столбец %MEM показывает 0,0

Команда top

Второй вариант – использование команды top. Более продвинутые пользователи должны знать эту команду, так как она выводит информацию о нагрузке системы и обновляет ее в реальном времени.

# top -p 897110
top - 16:11:19 up 143 days, 13:09, 1 user, load average: 7.02, 6.89, 6.96

Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
Cpu(s): 19.2%us, 4.8%sy, 0.1%ni, 75.3%id, 0.6%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 65773676k total, 42553788k used, 23219888k free, 6596532k buffers
Swap: 2097144k total, 0k used, 2097144k free, 27375052k cached

PID    USER PR NI VIRT RES SHR S %CPU %MEM TIME+   COMMAND
897110 root 20 0  378m 34m 500 S 0.0  0.1  0:04.77 httpd.itk

Обратите внимание на столбцы VIRT и %MEM. Последний столбец показывает информацию, которая очень похожа на ту, что получили предыдущей командой. А вот столбец VIRT отображает занятую виртуальную память.

Одним словом, виртуальная память – это некая комбинация ОЗУ и свопа, которую использует запущенный процесс.

Получение занятой памяти из /proc

Последней командой для получения занятой процессором памяти будет обращение к псевдо-файловой системе /proc.

# cat /proc/897110/status |grep -i VMSIZE
VmSize: 387496 kB

Снова будет выведен результат схожий с уже полученным ранее – виртуальная память, используемая процессом веб-сервера apache.

Вот мы и разобрали на примере процесса apache способы, которыми можно посмотреть занимаемую память. Также в тексте я упомянул виртуальную память. О ней мы поговорим в следующий раз.

Автор статьи:

Сабынич Вадим

Аватар пользователя vadim s. sabinich
Вернуться