【Linux】free命令
记录linux下,free命令的执行结果的意思:
[zhuxu@xentest8-vm1 ~]$ freetotal used free shared buffers cachedMem: 4194304 4164812 29492 0 248892 2148968-/+ buffers/cache: 1766952 2427352Swap: 524280 343820 180460
(1)第一行(Mem)中,
total:代表总的内存大小。
used :代表已经使用的内存大小,其中buffers和cached的值已经包含在used里面。
free :代表未分配使用的内存大小。
其中:
total = used + free = 4164812 + 29492 = 4194304
这边的used可以理解为从操作系统层面使用的内存大小(包括缓存)。
shared :代表共享的内存大小。
buffers:代表Buffer Cache使用内存的大小。
cached :代表Page Cache使用内存的大小。
其中:
Buffer Cache和Page Cache都是为了操作系统为了提高磁盘读取的速度,进行的缓存,是可以释放使用的内存。
Buffer Cache以块形式缓冲了块设备的操作,定时或手动的同步到硬盘,它是为了缓冲写操作然后一次性将很多改动写入硬盘,避免频繁写硬盘,提高写入效率。
Page Cache以页面形式缓存了文件系统的文件,给需要使用的程序读取,它是为了给读操作提供缓冲,避免频繁读硬盘,提高读取效率。
(2)第二行(-/+ buffers/cache)中,
used:即 – buffers/cache 的内存大小:used(第一行) –buffers –cached = 4164812 – 248892 – 2148968 = 1766952
free:即 + buffers/cache 的内存大小: free(第一行) + buffers + cached = 29492 + 248892 + 2148968 = 2427352
其中:
这边的used可以理解为应用程序使用的内存大小(不包括缓存)。
这边的free也就是真正的可以使用的剩余内存大小。
另外,可以通过watch命令来动态的显示,下面每0.5s执行一次free命令,并高亮显示变化的地方:
[zhuxu@dbadb1 ~]$ watch –helpUsage: watch [-dhntv] [--differences[=cumulative]] [--help] [--interval=<n>] [--no-title] [--version] <command>-d, –differences[=cumulative] highlight changes between updates(cumulative means highlighting is cumulative)-h, –help print a summary of the options-n, –interval=<seconds> seconds to wait between updates-v, –version print the version number-t, –no-title turns off showing the header[zhuxu@dbadb1 ~]$[zhuxu@dbadb1 ~]$ watch -d -n 0.5 free
–