一直以来对linux的内存的查看都是一知半解, 今天有时间详细了解了下free的命令 ,在这块整理记录下。
free命令可以在linux下查看系统的内存的使用情况。
主要参数有:
-b 结果以Bit的形式显示。
-k 结果以KB的形式显示(默认的显示方式)。
-m 结果以MB的形式显示。
-g 结果以GB的形式显示。
-s 每隔多少秒显示一次结果,-s的参数可以是小数。
free命令的默认的执行结果如下:
total used free shared buffers cached
Mem: 7975364 7808752 166612 0 140528 534844
-/+ buffers/cache: 7133380 841984
Swap: 8388600 4291484 4097116
其中:
第一行Mem:
total 总共的物理内存
used 已经被分配的物理内存
free 还没有被分配的物理内存
shared 已废弃,不用关心
buffers 已经被分配,但是仍未被使用的buffer内存
cached 已经被分配,但仍未被使用的cache内存
第二行 -/+buffers/cache:
used 已经被使用的buffer/cache内存
free 没有被使用的buffer/cache内存
第三行 Swap
total 总共的交换分区的大小
used 已经使用的交换分区的大小
free 剩余的交换分区的大小
从操作系统的角度来看 :
Mem/total = Mem/used + Mem/free
从操作系统的角度来看,内存仅仅分为已经被分配的部分跟未分配的部分,至于分配的内存怎么被使用或者是否被使用是不关心的。
从应用程序的角度来看 :
-/+ buffers/cache/used = Mem/used - Mem/buffers - Mem/cached
对于应用来说,操作系统总共分配出来的内存减去没有被使用的内存就是已经被使用的内存。
-/+ buffers/cache/free = Mem/free + Mem/buffers + Mem/cached
对于应用来说,操作系统没有被分配的内存加上操作系统已经分配出去但是还没有被使用的内存就是应用总共可以使用的内存。