首页 > 代码库 > 谈谈Linux内存释放
谈谈Linux内存释放
上上周吧,一个朋友问我说他公司的服务器内存free 为0 是为什么,意思大概是内存去哪了,这引发了一个小小的讨论,也就是内存释放的问题…
首先我们可能会用free 去查看内存的使用率,它应该是这样的
[root@ipython ~]# free -m total used free shared buffers cachedMem: 32040 31707 332 0 498 27649-/+ buffers/cache: 3559 28480Swap: 16087 0 16087##实际上在一个进程结束后其内存是会被释放的,但是内核没有立刻把内存收集到free中,而是存放在cache或buffers当中,以提高系统的IO效率,cache和buffered的内存是由内核进行动态的配置管理,如果系统的free大小不够的时候,系统会自动释放cache buffer的内存给程序使用!####证:如果说used占用很多,free很少,而且cache和buffer占的比例也很小,那表明内存是不够用了##
当然,如果你仍需要看到free比较多,你可以尝试这样
1、使用sync命令将所有未写的系统缓存区write to disk,包含已修改的i node、已延迟的块I\O和读写映射[root@ipython ~]# sync2、粗暴清理[root@ipython ~]# cat /proc/sys/vm/drop_caches0##可以看到默认是0,drop_caches提供了三个选项操作##1 清空页缓存 2 清空inode和目录树缓存 3 清空所有的缓存##清空缓存页##[root@ipython ~]# echo "1">/proc/sys/vm/drop_caches##再来看看##[root@ipython ~]# free -m total used free shared buffers cachedMem: 32040 2564 29475 0 0 40-/+ buffers/cache: 2524 29515Swap: 16087 0 16087
» 转载保留版权:IT辰逸 » 《谈谈Linux内存释放》» 本文链接地址:http://www.ipython.me/centos/linux-memory-release.html» 本文版权采取: BY-NC-SA 协议进行授权,转载注明出处。除IT-Tools、News以及特别标注,本站所有文章均为原创。» 如果喜欢可以: 点此订阅本站
谈谈Linux内存释放
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。