上上周吧,一个朋友问我说他公司的服务器内存free 为0 是为何,意思大概是内存去哪了,这引起了一个小小的讨论,也就是内存释放的问题…html
首先咱们可能会用free 去查看内存的使用率,它应该是这样的node
[root@ipython ~]# free -m total used free shared buffers cached Mem: 32040 31707 332 0 498 27649 -/+ buffers/cache: 3559 28480 Swap: 16087 0 16087 ##实际上在一个进程结束后其内存是会被释放的,可是内核没有马上把内存收集到free中,而是存放在cache或buffers当中,以提升系统的IO效率,cache和buffered的内存是由内核进行动态的配置管理,若是系统的free大小不够的时候,系统会自动释放cache buffer的内存给程序使用!## ##证:若是说used占用不少,free不多,并且cache和buffer占的比例也很小,那代表内存是不够用了##
固然,若是你仍须要看到free比较多,你能够尝试这样python
1、使用sync命令将全部未写的系统缓存区write to disk,包含已修改的i node、已延迟的块I\O和读写映射 [root@ipython ~]# sync 2、粗暴清理 [root@ipython ~]# cat /proc/sys/vm/drop_caches 0 ##能够看到默认是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 cached Mem: 32040 2564 29475 0 0 40 -/+ buffers/cache: 2524 29515 Swap: 16087 0 16087
» 转载保留版权: IT辰逸 » 《谈谈Linux内存释放》» 本文版权采起: BY-NC-SA 协议进行受权,转载注明出处。除IT-Tools、News以及特别标注,本站全部文章均为原创。» 若是喜欢能够: 点此订阅本站