top - 11:04:52 up 122 days, 22:48, 4 users, load average: 0.63, 0.38, 0.36
Tasks: 298 total, 1 running, 297 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.8%us, 1.5%sy, 0.0%ni, 95.4%id, 0.1%wa, 0.0%hi, 0.1%si, 0.1%st
Mem: 32877532k total, 32643136k used, 234396k free, 339136k buffers
Swap: 33553404k total, 2608k used, 33550796k free, 26621668k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ UID DATA COMMAND
25320 work 20 0 10.6g 1.2g 15m S 34.1 3.7 8816:43 500 10g java
15291 work 20 0 10.6g 1.4g 14m S 23.5 4.4 111436:38 500 10g java
31743 root 10 -10 24816 7860 2876 S 10.6 0.0 27:46.81 0 5484 atop
2415 work 20 0 4424m 639m 8476 S 8.3 2.0 14328:30 500 4.2g java
26289 work 20 0 10.9g 1.1g 14m S 4.6 3.4 801:05.24 500 10g java
61 root 20 0 0 0 0 S 0.3 0.0 14:47.83 0 0 ksoftirqd/14
6518 work 20 0 13276 1272 836 R 0.3 0.0 0:02.03 500 628 top
1 root 20 0 19356 1316 1100 S 0.0 0.0 0:56.11 0 412 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 0 0 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:26.12 0 0 migration/0
4 root 20 0 0 0 0 S 0.0 0.0 19:08.65 0 0 ksoftirqd/0
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 0 0 stopper/0
6 root RT 0 0 0 0 S 0.0 0.0 0:35.76 0 0 watchdog/0
下面是各种内存:
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、真正的该程序要求的数据空间,是真正在运行中要使用的。
7825

被折叠的 条评论
为什么被折叠?



