问题
used实际是个比较关键的指标,而该指标却并没有反应出服务器实际占用情况:
原因
实际这是缓存原因导致,可以通过命令释放,即上图的cached部分
解决
执行以下命令:
echo 0 >/proc/sys/vm/drop_caches
free -m #看内存是否已经释放掉了。
如果我们需要释放所有缓存,就输入下面的命令:
echo 3 > /proc/sys/vm/drop_caches
0-3的参数含义:
设置值说明:
0:不释放(系统默认值)
1:释放页缓存
2:释放dentries和inodes
3:释放所有缓存
释放了之后:
查看Linux服务器内存使用情况
在第一部分Mem 行中有如下参数:
* total: 内存总数,即1838 MB
* used: 已经使用的内存数,即 104 MB
* free: 空闲的内存数:即 1623 MB
* buff/cache: 缓存内存数,即 110 MB
buffer 与cache 的区别
A buffer is something that has yet to be “written” to disk. A cache is something that has been “read” from the disk and stored for later use.
真正已经用的内存数
used-(buffers+cached)的值。
真正未用到的内存数
free+buffers+cached 的值。
swap用了很多
我们在观察Linux的内存使用情况时,只要没发现用swap的交换空间,就不必担心自己的内存太少。如果常常看到swap用了很多,那么你就要考虑加物理内存了。这也是在Linux服务器上看内存是否够用的标准。