写在前面
我们在日常的工作当中需要各种手段来调试内存,尤其是在内存泄漏的情况下,我们需要一种手段来统计内存的使用去向,以确定内存使用不合理的方向。或者物理内存有限的情况下,需要对内存进行优化,也需要通过一些手段达到对内存的拆解。
一、free命令
free命令用于显示系统中剩余物理内存大小、已使用物理内存大小、交换空间大小和内核使用的缓冲区和缓存大小等信息。这些信息通过解析/proc/meminfo而来,样式如下:
- total:分两行,分别表示内存总大小,和swap空间总大小;
- used:已使用物理内存大小,(计算方式 used = total - free - buffers - cache)
- free:未使用物理内存大小,(来源于/proc/meminfo中的MemFree和SwapFree)
- shared:tmpfs使用的内存(并非百分百),(来源于/proc/meminfo中的Shmem)
- buff/cache:buffers和cache的总和,buffer、cache在系统中的快照如下: