背景
我想Linux的free命令对于很多的Linux老司机来说,应该是非常熟悉的了。我作为一个小白,下面来详细分析一下Linux 的free 命令。
free详解
目录
用处
free的详细解析
free的一些语法
用处
在这里简单的说一下free的用处。
free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存,共享内存将被忽略。
free的详细解析
在Linux服务器上使用free -m 命令,得到下面的结果:
感兴趣的可以看一下官方对于结果中的每一项是怎么解析的:
接下来我再用我的渣渣英语来翻译一下,画重点了:
可以把结果看为3部分,分别是Mem部分和-/+ buffers/cache部分还有Swap部分: Mem:表示物理内存统计。
total:表示物理内存总量(total = used + free)。
used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。
shared:共享内存,一般系统不会用到,这里也不讨论。
buffers:系统分配但未被使用的buffers 数量。 cached:系统分配但未被使用的cache 数量。
-/+ buffers/cache:表示物理内存的缓存统计。
Swap:表示硬盘上交换分区的使用情况,这里我们不去关心。
接下来我用我的大学数学来计算各个部分之间的关系(由于我使用了mb而不是kb来显示,可能会有误差)。
total = used + free,也就是7872=3503+4368
used1=buffers+cache+user2,也就是 3503=153+1707+1642
free2=free1+buffers+cache,也就是6229=4368+153+1707
那么我们看Linux系统的可用内存究竟看的是那一部分呢?
根据上面的分析和计算,我们可以知道,我们应该看的是free2那部分。因为free2=free1+buffers+cache。如果你看到free的值过小了,那么你就需要提高警惕了。
free的一些语法
感兴趣的可以先看一下官方的介绍,就问你燃不燃:
接下来看一下菜鸟教程给出的翻译:
语法 free [-bkmotV][-s <间隔秒数>]
参数说明:
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-o 不显示缓冲区调节列。 -s<间隔秒数> 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。
我们看到官方教程里有一个/proc/meminfo的东东,这是干啥用的?我先来cat一下:
关于/proc/meminfo的内容,具体的我也没有去研究。但是通过文档我可以总结出的就是free -m显示的结果就是通过统计/proc/meminfo的内容来得到的。
感谢&总结
本文主要分享了linux的free命令。如果我们想要查看系统的可用内存,那么我们应当关注free2这个值。"日拱一卒无有尽 功不唐捐终入海",每天进步一点点,量变引起质变,最后,我们还是可以取得长足的进步的,共勉。
我的微信公众号