前端时间发现博客服务器物理内存使用过高问题,就是使用linux free命令检查的,这次详细介绍下这个命令。
命 令: free
功能说明:显示内存状态。
语 法: free [-bkmotV][-s <间隔秒数>]
补充说明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
参 数: -b 以Byte为单位显示内存使用情况。 -k 以KB为单位显示内存使用情况。 -m 以MB为单位显示内存使用情况。 -o 不显示缓冲区调节列。 -s<间隔秒数> 持续观察内存使用状况。 -t 显示内存总和列。 -V 显示版本信息。
在linux 上使用free检查结果如下:
Mem:表示物理内存统计
total:表示物理内存总量(total = used + free)
used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。
shared:共享内存,一般系统不会用。
buffers:系统分配但未被使用的buffers 数量。
cached:系统分配但未被使用的cache 数量。
-/+ buffers/cache:表示物理内存的缓存统计
-buffers/cache 的内存数:95 (等于第1行的 used - buffers - cached) +buffers/cache 的内存数: 32 (等于第1行的 free + buffers + cached)
swap交换分区,即虚拟内存,一般不会使用。
关于linux free命令的使用就总结道这里。
————————————————————————————————————————————
查询linux系统中空闲内存/内存使用状态查看/剩余内存查看
[root@linuxzgf ~]# free -m
total used free shared buffers cached
Mem: 7982 6811 1171 0 350 5114
-/+ buffers/cache: 1346 6636
Swap: 16935 11 16924
[root@linuxzgf ~]#
在这里例子中,应用程序只使用了1346MB内存,还有6636MB空闲内存可以使用.
一些简单的计算方法:
物理已用内存 = 实际已用内存 - 缓冲 - 缓存
= 6811M - 350M - 5114M
物理空闲内存 = 总物理内存 - 实际已用内存 + 缓冲 + 缓存
应用程序可用空闲内存 = 总物理内存 - 实际已用内存
应用程序已用内存 = 实际已用内存 - 缓冲 - 缓存
原始解释:转至互联网:
Linux的基本原则是没有资源应该被浪费.因此核心会使用尽可能多的RAM,来缓存来自本地和远程的文件系统的信息.系统做读写操作的时候,会将与当前运行的进程相关的数据尽量存储在RAM里.系统报告的缓存是缓冲和页缓存两者之和.缓存并不是在进程结束的时候被回收(你可能很快会启动另外一个进程,需要同样的数据),而是随需回收–比如,当你启动一个需要大量内存的进程时,Linux核心会从内存中回收缓存,将得到的内存分配给新的进程.