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

03 Февраля 2016
195

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

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


Выбрать хостинг с подходящими параметрами.