系统负载高,如何排查?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统负载高,如何排查?相关的知识,希望对你有一定的参考价值。
参考技术A top命令查看机器负载 Load平均要小于Cpu的数量,一般是会根据15分钟那个load 平均值为首先 (1 5 15 分钟) 服务器的合理负载是CPU核数*2Cpu(s)行展示了当前CPU的状态
us表示用户进程占用CPU比例
sy表示内核进程占用CPU比例
id表示空闲CPU百分比
wa表示IO等待所占用的CPU时间的百分比 wa占用超过30%则表示IO压力很大。
Mem行展示了当前内存的状态,total是总的内存大小,userd是已使用的,free是剩余的,buffers是目录缓存
Swap行同Mem行,cached表示缓存,用户已打开的文件。如果Swap的used很高,则表示系统内存不足
top命令下,按1,则可以展示出服务器有多少CPU,及每个CPU的使用情况 按shift + "c",则将进程按照CPU使用率从大到小排序,按shift+"p",则将进程按照内存使用率从大到小排序
查看网络负载 iostat -x 1 10 -x表示显示所有参数信息,1表示每隔1秒监控一次,10表示共监控10次
rsec/s表示读入
wsec/s表示每秒写入,这两个参数某一个特别高的时候就表示磁盘IO有很大压力
r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
cpu 表示cpu的使用状态
us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序。
sy 列显示了内核进程所花费的cpu时间的百分比。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
id 列显示了cpu处在空闲状态的时间百分比
system 显示采集间隔内发生的中断数 in 列表示在某一时间间隔中观测到的每秒设备中断数。 cs列表示每秒产生的上下文切换
mysql高负载的问题排查
http://dngood.blog.51cto.com/446195/1150031
- log_slow_queries = /usr/local/mysql/var/slow_queries.log #慢查询日志路径
- long_query_time = 10 #记录SQL查询超过10s的语句
- log-queries-not-using-indexes = 1 #记录没有使用索引的sql
原因是因为一个表太大,我用 select * from xxx where yyy=zzz order by time limit 1;的时候就变得很慢了,因为这么多历史数据排序费时间。解决方法,表就放一条对应的最新的记录。
以上是关于系统负载高,如何排查?的主要内容,如果未能解决你的问题,请参考以下文章