解决linux cpu占用不高但是负载很高
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决linux cpu占用不高但是负载很高相关的知识,希望对你有一定的参考价值。
参考技术A 客户现场遇到mongodb cpu偶发性占用过高问题,配置16c16g,装了mysql,mongo,influxdb,java等应用,观察到mongodb在更新数据的时候很慢,几秒甚至几十秒。通过vmstat 1 10发现bi很高达到2w,
top展开cpu发现有几个cpu的%wa经常在100%,初步判断硬盘负载很高,
用iostat -x 1 10果然硬盘%util达到100%了
iotop发现mysqld占用大量的io
看mysql的日志,发现有超时查询,加完索引后,系统正常。
回头看mongodb的查询慢、偶发性占用cpu 1600%只是表象,因为mongodb需要往硬盘写数据,这个时候硬盘被mysql占用,导致mongodb线程只能等io,mongodb写硬盘的请求积累,cpu也没释放,故cpu占用率高。
load负载和cpu之间关系:
参考: https://www.cnblogs.com/zhangyjblogs/p/14163576.html
django web应用runserver模式下cpu占用高解决办法
原因
- 由于Django的dev服务器会定期检查所有Python源文件是否有更改。即使不触摸或修改任何.py文件,它们也会不断重新加载,从而导致CPU和I/O负载很高。
解决办法
- 通过在
runserver--noreload
可以防止这种自动重新启动机制,从而将空闲负载减少到零.
以上是关于解决linux cpu占用不高但是负载很高的主要内容,如果未能解决你的问题,请参考以下文章
stress-Linux系统压力测试工具使用及系统负载很高的几种场景测试