CPU内存IO负载过高排障方法及解决方案
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CPU内存IO负载过高排障方法及解决方案相关的知识,希望对你有一定的参考价值。
内存使用过高处理方法:
查询手段
使用top查看,
处理方法
1、将没有用的进程杀掉
2、查看占用进程高的应用的日志,对其做相应用的优化
3、增加内存
或者通过pstack这些工具去查对应进程的pid对系统调用的情况来定位故障原因。
CPU负载过高处理方法:
查询手段:
CPU资源负载过高,可通过使用top命令查出对应cpu资源使用率高的进程,
分析原因:
根据进程判断是什么应用,再去查对应应用的访问量大小,以及日志去定位是因为访问量过大导致,还是因为性能的原因导致。
处理方法:
如果是访问量导致的,那就要考虑服务器扩容,通过lvs做服务的负载均衡来分担了。
如果是性能的问题,通常通过日志可以查到慢查询的代码的。将慢查询的日志整理给到开发,让开发去做优化就可以了。
IO负载过高处理方法
查询手段:
IO过高,可通过iostat与iotop去检查,iotop可以查到哪个进程的IO比较高的。也用同样的方法去查原因。
分析原因:
IO比较高通常出现在数据库或写的日志量非常大,或应用访问量非常大而产生大量的日志写磁盘的原因导致的。
处理方法:
因为读写数据库导致IO过高,通常是慢查询导致的,可以查mysql的慢查询的命令,让开发去做优化。
如果是web访问量过大而导致大量写日志的,可以考虑暂时将日志关闭,或优化日志,将部分对查障没有帮助的日志采用屏蔽的方法减低日志写入磁盘的量的方法减小IO。
比如有些开发可能会对php或tomcat或resin开debug的,这种日志可以关闭掉的。nginx的日志格式也可以调的,可以屏蔽掉部分关键字的日志输出的。
本文出自 “wsyht90的博客” 博客,请务必保留此出处http://wsyht90.blog.51cto.com/9014030/1874681
以上是关于CPU内存IO负载过高排障方法及解决方案的主要内容,如果未能解决你的问题,请参考以下文章
Redis 故障排查「连接失败问题排查和解决」带你总体分析CPU及内存的使用率高问题排查指南及方案