查看
free -h
Mem 行(第一行)数据说明:
Total:1035108KB。表示物理内存总大小。
Used:1008984KB。表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
Free:26124KB。表示未被分配的内存。
Shared:0kb。共享内存,一般系统不会用到。
Buffers:124212KB。系统分配但未被使用的buffers 数量。
Cached:413000KB。系统分配但未被使用的cache 数量。
-/+ buffers/cache 行(第二行)数据说明:
Used:471772kb,实际使用的buffers 与cache 总量,也是实际使用的内存总量。
Free: 563336kb, 未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。
根据以上分析,可以得出一下结论:
1. 实际可用内存大小:
Free(-/+ buffers/cache行)= Free(Mem)+buffers(Mem)+Cached(Mem);
563336 = 26124 + 124212+ 413000
2. 已经分配的内存大小:
Used(Mem) = Used(-/+ buffers/cache)+ buffers(Mem) + Cached(Mem)
1008984kb = 471772 + 124212 +413000
3. 物理内存总大小
total(Mem) = used(-/+ buffers/cache) + free(-/+ buffers/cache)
1035108 = 471772 + 563336
释放
/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段.也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整.那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存.操作如下:
cat /proc/sys/vm/drop_caches
0
首先,/proc/sys/vm/drop_caches的值,默认为0
手动执行sync命令
描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。
sync
echo 3 > /proc/sys/vm/drop_caches
cat /proc/sys/vm/drop_caches
3
将/proc/sys/vm/drop_caches值设为3
再次执行free查看内存已释放完毕。