Linux查看内存占用

时间:2022-04-18 16:58:08

在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对应的命令,以及内存地址的映射情况。