Chinaunix首页 | 论坛 | 博客
  • 博客访问: 504992
  • 博文数量: 257
  • 博客积分: 1666
  • 博客等级: 上尉
  • 技术积分: 1535
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-02 23:02
文章分类

全部博文(257)

文章存档

2013年(2)

2012年(255)

分类:

2012-09-10 11:46:43

By fireworks2@foxmail.com


linux 环境下,一个进程到底占用了多少内存?要回答这个问题,就要知道内核提供了哪些接口来供用户查看进程的各种具体运行时特征。

/proc//smaps   shows memory consumption for each of the process's mappings
/proc//maps    containing the currently mapped memory regions and their access permissions
/proc/[pid]/statm   provides information about memory usage, measured in pages


  1. top命令通过解析/proc//statm统计VIRT和RES和SHR字段值。
  2. VIRT是申请的虚拟内存总量。
  3. RES是进程使用的物理内存总和。
  4. /proc//smaps内Shared_*统计的是RES中映射数量>=2的物理内存。
  5. /proc//smaps内Private_*统计的是RES中映射数量=1的物理内存。
  6. SHR是RES中“映射至文件”的物理内存总和。包括:
程序的代码段。
动态库的代码段。
通过mmap做的文件映射。
通过mmap做的匿名映射,但指明了MAP_SHARED属性。
通过shmget申请的共享内存。



阅读(806) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~