Linux系统内存占用90%以上——解决方法

 
首先要明确一个问题:Linux系统内存占用90%以上,是否属于正常范围?网上有详细的解释,这属于正常现象~~~ 
  www.2cto.com  
Linux/Unix系统管理内存的方式和windows是不一样的,即便是一个负载很小的linux,跑几天后,内存占用量也将达到90%以上,即便无人访问,这个数字是完全正常的。但是,这个内存占用量不会达到100%的,每天夜里系统都会执行/etc/cron.daily进行内存优化。 
 
Linux/Unix系统是非常稳健的,虽然内存占用显示90%以上,但依然可保证365天以上无须重启。对于Linux系统,评估其压力的主要指标是最近5分钟的负载指数:比如用w命令或者top去看,可以看到“0.70 0.35 0.01”这样的数字,分别表示5分钟内的、10分钟内的、15分钟内排队的进程数,只要第一个数字即5分钟内的负载不大于5,系统就是健康的,不用做任何维护;如果这个数字大于了5,那么通常系统速度就会变慢,一般有如下几种可能: 
  www.2cto.com  
1) 有程序占用大量CPU,使用top命令来检查(看看是否有java程序锁死之类的故障) 
 
2) 有程序占用大量内存,使得内存真正不够用了(这个才是真正需要加内存的时候),比如由于MySQL在较大负载下运行容量为GB级别的数据库导致内存不够用,需要给服务器插入更多物理内存 
 
3) 磁盘系统读写故障,IO吞吐错误造成CPU负载上升,需要光盘引导进入单用户模式扫描修复磁盘,修不好就只能更换新硬盘了 
 
因此,对于Linux/Unix系统内存占用的百分比,无须过于关心,一般检查系统负载参数即可  
 
但也可以手动进行内存释放,具体操作如下:   
 
[root@ajcheng]# cat /proc/sys/vm/drop_caches 
0  
首先,/proc/sys/vm/drop_caches的值,默认为0 
[root@ajcheng]# sync 
手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件) 
[root@ajcheng]# echo 3 > /proc/sys/vm/drop_caches 
[root@ajcheng]# cat /proc/sys/vm/drop_caches 
将/proc/sys/vm/drop_caches值设为3 
[root@ajcheng]# free -m 
total used free shared buffers cached 
Mem: 249 66 182 0 0 11 
-/+ buffers/cache: 55 194 
Swap: 511 0 511 
再来运行free命令,发现现在的used为66MB,free为182MB,buffers为0MB,cached为11MB.那么有效的释放了buffer和cache.  
 
参考文章:http://www.2cto.com/os/201212/180381.html

最新文章

  1. Maven进价:Maven的安装和目录结构
  2. Spring实战学习笔记之SpEL表达式
  3. python实现简单爬虫抓取图片
  4. windows下同时安装python2与python3
  5. 【转】delphi程序只允许运行一个实例的三种方法:
  6. iOS设备升级iOS7
  7. Linux下进程的同步相互排斥实例——生产者消费者
  8. Python在Windows下开发环境配置汇总
  9. Java基础知识强化之集合框架笔记35:List练习之产生10个1~20之间的随机数(要求:随机数不能重复)
  10. Android 逆向工程之步骤
  11. Windows Phone开发(7):当好总舵主
  12. txt文件的读取
  13. openflow packet_out和packet_in分析
  14. ajax请求网络api
  15. 简单的C#TCP协议收发数据示例
  16. Luogu 1583 - 魔法照片 - [简单排序题]
  17. sigmoid belief network boltszmann machine
  18. java命令行执行程序解决依赖外部jar包的问题
  19. 每日站立会议——敏捷流程scrum实践
  20. 全栈project师体能备战--知识面(1--10)

热门文章

  1. 使用 EclEmma 进行覆盖测试
  2. shell实例练习+详解
  3. idea 远程调试 tomcat web应用
  4. Django 类方式view进行进行用户验证
  5. springmvc图片上传(兼容ie8以上,实时预览)
  6. 流API--流的迭代
  7. strstr()与find()
  8. ios 判断屏幕显示是@2x还是@3x来调用字体大小
  9. 【转】AWK常用
  10. 【转】linux shell 逻辑运算符、逻辑表达式