在linux中查找进程的页面大小和页数

给定一个在Linux(最新的内核)中运行的进程的PID,我怎么知道:

  1. 正在使用的页面数量
  2. 它使用的每个页面的大小(4K,2MB或1GB)

这是x86-64架构。

Pagesize是系统范围的,可以通过getconf命令find

 getconf PAGESIZE 

mem_usage.py工具可以提供有关进程内存使用情况的更多详细信息。

取决于您想要的信息的详细程度,您需要以下一项:

  • /proc/pid/statm :提供有关内存使用情况的信息,以页面为单位。
  • /proc/pid/status :提供/proc/pid/statm ,但更容易阅读。

查看proc文件的手册页,了解不同列的含义。

正在使用的页面数量

 awk '{ print $24 }' /proc/[pid]/stat 

要么:

 awk '{ print $2 }' /proc/[pid]/statm 

根据man proc ,这是进程在实际内存中的页数。 还可以看看procstat.c以可读格式显示proc stat。