Given a PID of the process running in Linux (latest kernel), how do I find out:
- The number of pages it is using
- The size of each page it is using (4K, 2MB or 1GB)
This is for x86-64 architecture.
Pagesize is system wide and can be found with the getconf
command
getconf PAGESIZE
The mem_usage.py tool can provide some more detailed information on a processes memory usage.
Depending on how verbose the information you want should be, you want one of the following:
/proc/pid/statm
: Provides information about memory usage, measured in pages./proc/pid/status
: Provides much of the information from /proc/pid/statm
, but is easier to read.Check out the man-page for the proc-files for thorough documentation of what the different columns mean.
The number of pages it is using
awk '{ print $24 }' /proc/[pid]/stat
or:
awk '{ print $2 }' /proc/[pid]/statm
According to the man proc, it is the number of pages the process has in real memory. Also take a look at the procstat.c to display proc stat in human readable format.