系统负载高,如何排查?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统负载高,如何排查?相关的知识,希望对你有一定的参考价值。

参考技术A top命令查看机器负载 Load平均要小于Cpu的数量,一般是会根据15分钟那个load 平均值为首先 (1 5 15 分钟) 服务器的合理负载是CPU核数*2

Cpu(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

 

  1. log_slow_queries = /usr/local/mysql/var/slow_queries.log   #慢查询日志路径 
  2. long_query_time = 10                                       #记录SQL查询超过10s的语句 
  3. log-queries-not-using-indexes = 1                          #记录没有使用索引的sql 

 

原因是因为一个表太大,我用  select * from  xxx where yyy=zzz order by time limit 1;的时候就变得很慢了,因为这么多历史数据排序费时间。解决方法,表就放一条对应的最新的记录。

以上是关于系统负载高,如何排查?的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统中负载较高&磁盘I/O %util特别高问题排查思路与解决方法(学完Linux问题基本都可以解决)

CPU负载过高异常排查实践与总结

cpu负载突刺问题排查

Linux系统排查——CPU负载篇

linux查看cpu占用率

java cpu负载过高怎么解决