首页 » web服务器

centos的服务器 清理内存释放内存

   发表于:web服务器评论 (0)   热度:1648

一台centos的服务器 用atop看了看内存还剩125m 内存都跑满了 , 网站打开很慢 , mysql链接 有点慢 , 又用 free -m 查看

(此图只是free -m 的例子)

再 top,然后按下shift+m,也就是按内存占用百分比排序,发现排在第一的进程,才占用0.9%,那是什么占用的呢?谷歌了一下,据说是centos 为了提高效率,把部分使用过的文件缓存到了内存里。如果是这样的话,我又不需要这样的文件性能,那就可以释放。如下两个命令就可以:

#sync

#echo 3 > /proc/sys/vm/drop_caches

此命令经测试释放了7个多G的 内存 .

================================================================

Linux里一般使用free命令查看内存的使用情况,加参数-m表示以Mb为单位来显示内容。这个内容其实是有一些讲究的。如下图:

image

显示内容分三行N列,第一行表示内存总体的使用情况,第二行表示内存-/+ buffers/cache后的使用情况,第三行表示交换分区的使用情况;各列又显示了内存在每个类别上的使用情况,total列表示总的内存数,used列表示已使用的内存数...诸如此类。

我们需要重点关注的是第二行。

第二行used列中的2564,意思是已使用的内存数-buffers-cache后的内存,(即每一行中的used-buffers-cache)

第二行free列中的1388,表示可用内存数+buffers+cache后的内存,(即第一行中的free+buffers+cache)

所以,服务器实际使用的内存是2564M,还没有被使用的内存为1388M!

为什么这么说?我们知道buffer和cache是linux中的缓存技术,这两种缓存有什么区别,我也不是很清楚,只要知道它们都是用来做缓存使 用的就可以了。第一行中各列的内存数,是系统反映出来的,而对于系统来说,buffer和cache都是已经分配出去的内存,所以属于used(已经使 用);第二行中各列的内存则不然,它们是-/+ buffer/cache后的内存数,对于程序而言,buffer和cache都是可以使用的内存,因为它们原来就是设计成预先分配的用以提高性能的内 存,所以它们都是可用的即free。

所以,第一行的used-buffer-cache,得出第二行used列中的数字,它才是程序实际使用的内存;而第一行的free+buffer+cache,得出第二行free列中的数字,它是程序可以使用的内存。

(。・v・。)
喜欢这篇文章吗?欢迎分享到你的微博、QQ群,并关注我们的微博,谢谢支持。