日期:2014-05-16  浏览次数:20727 次

linux top命令VIRT,RES,SHR,DATA的含义

转自:http://hi.baidu.com/%CC%D8%B0%AE%C0%B6%C1%AB%BB%A8/blog/item/5b4856122dfabd5e43a9ade7.html

?

top - 13:37:58 up 51 days, 20:48, 2 users, load average: 0.05, 0.03, 0.02
Tasks: 290 total, 1 running, 289 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 6096544k total, 4587432k used, 1509112k free, 437192k buffers
Swap: 8385888k total, 0k used, 8385888k free, 2846684k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22140 oracle 15 0 1694m 1.2g 1.1g S 0.0 19.8 1:20.40 oracle
22150 oracle 15 0 1688m 944m 936m S 0.0 15.9 0:30.19 oracle
22138 oracle 15 0 1681m 937m 934m S 0.0 15.7 0:02.14 oracle
4920 oracle 15 0 1686m 916m 908m S 0.0 15.4 3:14.46 oracle
4922 oracle 15 0 1686m 876m 868m S 0.0 14.7 2:17.30 oracle
4916 oracle 15 0 1686m 814m 806m S 0.0 13.7 1:55.11 oracle
22146 oracle 15 0 1686m 753m 745m S 0.0 12.7 0:31.55 oracle

VIRT:virtual memory usage

1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES:resident memory usage 常驻内存

1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR:shared memory

1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来

DATA

1、数据占用的内存。如果top没有显示,按f键可以显示出来。
2、真正的该程序要求的数据空间,是真正在运行中要使用的。