Вы можете использовать pmap
+ awk
.
Скорее всего, нас интересует память RSS
, которая является 3-м столбцом в последней строке примера вывода pmap
ниже(82564).
$ pmap -x <pid>
Address Kbytes RSS Dirty Mode Mapping
....
00007f9caf3e7000 4 4 4 r---- ld-2.17.so
00007f9caf3e8000 8 8 8 rw--- ld-2.17.so
00007fffe8931000 132 12 12 rw--- [ stack ]
00007fffe89fe000 8 8 0 r-x-- [ anon ]
ffffffffff600000 4 0 0 r-x-- [ anon ]
---------------- ------ ------ ------
total kB 688584 82564 9592
Затем для извлечения этого значения используется Awk.
$ pmap -x <pid> | awk '/total/ { print $4 "K" }'
Значения pmap
даны в килобайтах.Если бы мы хотели это в мегабайтах, мы могли бы сделать что-то вроде этого.
$ pmap -x <pid> | awk '/total/ { print $4 / 1024 "M" }'