进程实际内存占用: 私有驻留内存数(Private RSS)介绍
来源:互联网 发布:mac 网页数据采集器 编辑:程序博客网 时间:2024/05/22 15:39
进程实际内存占用: 私有驻留内存数(Private RSS)介绍
先介绍几个基本概念:
SIZE : 进程使用的地址空间, 如果进程映射了100M的内存, 进程的地址空间将报告为100M内存. 事实上, 这个大小不是一个程序实际使用的内存数.
RSS : "Resident Set Size", 实际驻留"在内存中"的内存数. 不包括已经交换出去的代码. 举一个例子: 如果你有一个程序使用了100K内存, 操作系统交换出40K内存, 那么RSS为60K. RSS还包括了与其它进程共享的内存区域. 这些区域通常用于libc库等.
SHARE : RSS中与其它进程共享的内存部分大小.
VMSIZE : 一个进程占用的总的地址空间大小. 它包括了没有映射到内存中的页面.
Private RSS : 映射到内存中的页面, 这些页面仅由进程单独使用. 这也是我们最关心地方: 进程实际占用的内存数.
如何来查看Private RSS呢? /proc接口中每一个进程目录下的smaps提供了private rss信息. smaps是在2.6.16内核版本引进来的.
私有驻留内存数(Private RSS):
查看/proc/$pid/smaps
下面我以本站使用的Fedora Core 5为例, 查看进程号1293(vmware-guestd, 本站使用的是一台基于vmware的客户虚拟机, 微睦独立主机 )使用的Private RSS数.
00111000 -00112000 rwxp 00111000 00 :00 0
Size: 4 kB
Rss: 4 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 4 kB
0050e000-0050f000 rwxp 0050e000 00 :00 0
Size: 4 kB
Rss: 0 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
0051a000-0051b000 r-xp 0051a000 00 :00 0 [ vdso]
Size: 4 kB
Rss: 4 kB
Shared_Clean: 4 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
0051b000-00534000 r-xp 00000000 fd:00 194898 /lib/ld-2 .4 .so
Size: 100 kB
Rss: 0 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
00534000 -00535000 r-xp 00018000 fd:00 194898 /lib/ld-2 .4 .so
Size: 4 kB
Rss: 0 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
00535000 -00536000 rwxp 00019000 fd:00 194898 /lib/ld-2 .4 .so
Size: 4 kB
Rss: 0 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 0 kB
00538000 -00665000 r-xp 00000000 fd:00 194905 /lib/libc-2 .4 .so
Size: 1204 kB
Rss: 212 kB
Shared_Clean: 204 kB
Shared_Dirty: 0 kB
Private_Clean: 8 kB
Private_Dirty: 0 kB
00665000 -00667000 r-xp 0012d000 fd:00 194905 /lib/libc-2 .4 .so
Size: 8 kB
Rss: 8 kB
Shared_Clean: 4 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 4 kB
00667000 -00668000 rwxp 0012f000 fd:00 194905 /lib/libc-2 .4 .so
Size: 4 kB
Rss: 4 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 4 kB
00668000 -0066b000 rwxp 00668000 00 :00 0
Size: 12 kB
Rss: 8 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 8 kB
08047000 -08062000 r-xp 00000000 fd:00 292327 /usr/sbin/vmware-guestd
Size: 108 kB
Rss: 64 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 64 kB
Private_Dirty: 0 kB
08062000 -08063000 rwxp 0001a000 fd:00 292327 /usr/sbin/vmware-guestd
Size: 4 kB
Rss: 4 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 4 kB
08063000 -08068000 rwxp 08063000 00 :00 0
Size: 20 kB
Rss: 12 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 12 kB
08385000 -08886000 rwxp 08385000 00 :00 0 [ heap]
Size: 5124 kB
Rss: 5080 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 5080 kB
bfeb2000-bfec7000 rwxp bfeb2000 00 :00 0 [ stack]
Size: 84 kB
Rss: 12 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 12 kB
上面我们看到从smaps看不太方便, 推荐使用Ben Maurer写的perl脚本 : (本地下载 )
下面是由seme.pl脚本解析的smaps数据:
首先安装Linux::Smaps模块:
perl -MCPAN -e 'install Linux::Smaps'
然后用seme.pl解析1293进程的Smaps数据:
VMSIZE: 7200 kb
RSS: 1052 kb total
192 kb shared
100 kb private clean
760 kb private dirty
PRIVATE MAPPINGS
vmsize rss clean rss dirty file
5636 kb 8 kb 724 kb [ heap]
84 kb 0 kb 12 kb [ stack]
4 kb 0 kb 4 kb
8 kb 0 kb 4 kb /lib/libc-2 .4 .so
4 kb 0 kb 4 kb /lib/libc-2 .4 .so
12 kb 4 kb 4 kb
4 kb 0 kb 4 kb /usr/sbin/vmware-guestd
20 kb 8 kb 4 kb
1204 kb 16 kb 0 kb /lib/libc-2 .4 .so
108 kb 64 kb 0 kb /usr/sbin/vmware-guestd
SHARED MAPPINGS
vmsize rss clean rss dirty file
1204 kb 188 kb 0 kb /lib/libc-2 .4 .so
4 kb 4 kb 0 kb [ vdso]
从上面看到rss大小被分成了两个部分: private(私有)和shared(共享).
private rss就是我们最关心的进程实际占用的内存数.
- 进程实际内存占用: 私有驻留内存数(Private RSS)介绍
- Linux进程实际内存占用: 私有驻留内存数(Private RSS)介绍
- 进程实际内存占用: 私有驻留内存数(Private RSS)介绍
- 进程实际内存占用: 私有驻留内存数(Private RSS)介绍
- 进程实际内存占用: 私有驻留内存数(Private RSS)介绍
- 如何在linux下看进程实际占用内存
- 如何查看进程的实际的内存占用
- 如何查看进程的实际的内存占用
- Linux系统used内存占用很大,而实际系统中个进程并没有占用这么多内存
- linux内存实际占用详解
- 查看进程占用内存
- 查看进程占用内存
- 降低进程内存占用
- 内存驻留程序
- 驻留代码--内存映像
- 让小表内存驻留方法
- xscan驻留内存
- 字符串内存驻留机制
- as3运算符,表达式及运用
- 一起SVN使用中的代码丢失事故后记
- Nexus One的福音 Android 2.1 SDK发布
- vmware-tool的安装方法
- 掌握 Linux 学习方法
- 进程实际内存占用: 私有驻留内存数(Private RSS)介绍
- OLTP和OLAP的区别
- 屏幕截图 方法简析
- linux磁盘满,导致程序异常
- MySQL 5.1 安装配置图解
- ArcEngine序列化矢量图层的标注属性
- 管理技术的重要性
- 用setacl通过命令行来设置注册表的权限
- Struts2.1.8+Spring2.5.6+Hibernate3.2整合的两种方式!!!