linux内存cached释放

linux内存cached释放

我们用free命令查看系统内存使用情况的时候会发现:

#free -m

1、total = used + free

2、cached比较大,甚至我遇见过内存剩余只有7M的情况,这个时候cached非常大,基本上接近等于total了,这个时候打开文件或者传输文件的时候可用内存很小,程序可能就会用到交换分区swap了,所以会发现机器速度变慢的情况


如何解决这个导致机器变慢的问题呢?

罪魁祸首就是内存都被cached了,free的基本没有了

所以我们应该想想如何把cached内存释放出来

重启机器肯定是可以解决,但是我们肯定是不能用这样的办法


释放方法有三种(系统默认值是0,释放之后你可以再改回0值):

To free pagecache: echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes: echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes: echo 3 > /proc/sys/vm/drop_caches


果然如此,这样立刻解决了内存问题。

1
2
3
4
5
6
7
8
9
10
11
root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:         15940       7187       8753          0        326       4824
-/+ buffers/cache:       2035      13905
Swap:        18127          0      18127
[root@localhost ~]#  echo "1" > /proc/sys/vm/drop_caches
^[[A^[[A[root@localhfree -m
             total       used       free     shared    buffers     cached
Mem:         15940       1903      14037          0          0         29
-/+ buffers/cache:       1874      14066
Swap:        18127          0      18127



本文转自 cs312779641 51CTO博客,原文链接:http://blog.51cto.com/chenhao6/1327770
上一篇:进程创建


下一篇:进程调度