Linux查看内存占用
在Linux可以使用这两个命令查看内存占用:top,pmap
top
top是linux常用的性能分析工具,可以查看各个进程的资源占用情况。
$top
top - 21:52:03 up 521 days,  4:59,  2 users,  load average: 0.02, 0.04, 0.06
Tasks:  87 total,   1 running,  84 sleeping,   2 stopped,   0 zombie
Cpu(s):  0.7%us,  0.7%sy,  0.0%ni, 98.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1018600k total,   931668k used,    86932k free,    22444k buffers
Swap:        0k total,        0k used,        0k free,    93136k cached
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
   1345 cc         20   0 2296m   326m 2036 S 0.0 32.8 194:05.56 java
   2926 cc         20   0 2335m   320m 4688 S 0.3 32.2  19:08.68 java
   4152 mysql     20   0  698m  41m 3144 S 0.0 4.2 241:43.29 mysqld
   57548 cc         20   0 1034m  15m  476 S 0.0 1.5   0:00.23 node  
前面5行是资源使用的汇总信息。在第四行的Mem为内存使用情况
Mem:   1018600k total,   931668k used,    86932k free,    22444k buffers
汇总的内存信息依次是:total->总的内存,used->已使用的内存,free->可用内存,buffers->buffer占用
进程占用资源情况,输出内容:
- PID:进程的ID
- USER:进程所有者
- PR:进程的优先级别,越小越优先被执行
- NI:nice值。负值表示高优先级,正值表示低优先级
- VIRT:进程占用的虚拟内存
- RES:进程占用的物理内存
- SHR:进程使用的共享内存
- S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
- %CPU:进程占用CPU的使用率
- %MEM:进程使用的物理内存和总内存的百分比
- TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
- COMMAND:进程启动命令名称
%MEM为占用的内存百分比。
快捷键
进入top界面后,可以使用m和M两个快捷键。
- m:显示/隐藏内存资源汇总,及第四和第五行
- M:进程占用资源的%MEM列按降序排列
pmap
如果需要查看进程占用内存的详情,可以使用pmap
$ pmap -d pid
pid可以使用ps查到。
输出
$pmap -d 33488
33488:  /usr/bin/java xxx
Address      Kbytes Mode Offset      Device  Mapping
0000000000400000    4 r-x-- 0000000000000000 0ca:00001 java
0000000000600000    8 rw--- 0000000000000000 0ca:00001 java
00000000015cf000   928 rw--- 0000000000000000 000:00000  [ anon ]
pmap会列出进程id对应的命令,以及内存地址的映射情况。
 
             
             
             
             
            