Линукс – довольно гибкая штука и задачи здесь можно выполнить разными способами. Сегодня мы рассмотрим, как узнать сколько ОЗУ используется определенным процессом.
Сделаем это на примере процесса веб-сервера 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 способы, которыми можно посмотреть занимаемую память. Также в тексте я упомянул виртуальную память. О ней мы поговорим в следующий раз.