Linux内存测量(基础篇)

这是一篇关于Linux内存measuring的基础教程。除了free之外,我们可以通过/proc得到更多信息。它们是/proc下的mapssmaps statm

'free' and /proc

'free' 会显示机器上的内存使用信息。能实时跟踪整个系统内存的使用情况。

$ free             total       used       free     shared    buffers     cachedMem:        507564     481560      26004          0      68888     185220-/+ buffers/cache:     227452     280112Swap:      2136604     105168    2031436


除了free命令之外,/proc/meminfo能够提供更多的信息。以下就是一个例子: 512 Mb RAM, 运行在 Linux 2.6.3:

$ cat /proc/meminfoMemTotal:       507564 kBMemFree:         26004 kBBuffers:         68888 kBCached:         185220 kBSwapCached:      29348 kBActive:         342488 kBInactive:        32092 kBHighTotal:           0 kBHighFree:            0 kBLowTotal:       507564 kBLowFree:         26004 kBSwapTotal:     2136604 kBSwapFree:      2031436 kBDirty:              88 kBWriteback:           0 kBMapped:         165648 kBSlab:            73212 kBCommitted_AS:   343172 kBPageTables:       2644 kBVmallocTotal:   524212 kBVmallocUsed:      7692 kBVmallocChunk:   516328 kB

测量用户进程的内存使用:

'ps' 关于内存信息解释

 'ps' 能够提供内存信息情况。比如:

 BJATCA01sta1:/proc/3105(8)#ps -p 3129 -o pid,rss,vsz,comm

   PID   RSS   VSZ COMMAND

  3129 23100 213664 GAM


·          %Mem - 内存使用百分比

·         VSZ - Virtual Size

·         RSS - Resident Set Size

·         SIZE - Equivalent to VSZ

'top' 显示信息可参见 'man top':

·          %MEM -- Memory usage (RES)            进程当前使用的物理内存。

·         VIRT -- Virtual Image (kb)          进程整个virtual memory空间VIRT = SWAP + RES

·         SWAP -- Swapped size (kb)    virtual memory交换到disk或者没有加载到物理内存里的空间。

·         RES -- Resident size (kb)  进程驻留在内存里面的内存大小  RES = CODE + DATA.

·         CODE -- Code size (kb)           加载到内存里面的可执行文件代码

·         DATA -- Data+Stack size (kb) 加载到内存里面的数据和栈

·         SHR -- Shared Mem size (kb) 共享内存大小

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/23191.html