平均负载排查
2020-02-03 本文已影响0人
Daisy小朋友
1 压测工具
stress,可用作异常进程模拟平均负载升高场景
使用:
yum -y install stress
$ stress --cpu 1 --timeout 600 模拟一个CPU达到100%场景
$ stress -i 1 --timeout 600 模拟I/O压力,即不停的执行sync
$ stress -c 8 --timeout 600 模拟8个进程抢占资源场景
---------------
---------------
-c --cpu 产生n个进程 每个进程都反复不停的计算随机数的平方根
-i --io 产生n个进程 每个进程反复调用sync(),sync()用于将内存上的内容写到硬盘上
-t --timeout N 指定运行N秒后停止
--backoff N 等待N微妙后开始运行
2 指标
当平均负载高于CPU数量70%时,需要排查。即单个cpu负载为1.70
3 工具
mpstat pidstat(需要安装yum -y install sysstat)
mpstat——常用的多核CPU性能分析工具,用来实时查看每个CPU性能指标,以及所有CPU的平均指标
pidstat是一个常用的进程性能分析工具,用来实时查看进程的CPU,内存I/O以及上下文切换等性能指标
4 命令
查看平均负载情况
# -d 参数表示高亮显示变化的区域
$ watch -d uptime 查看负载是否高
-----------------
-----------------
watch: 监测工具,监测一切命令的结果变化 -d 高粱显示变化区域,-n 间隔时间,缺省每2s运行一下程序
安装sysstat 包含了常用的 Linux 性能工具,用来监控和分析系统的性能,下面会用到mpstat和pidstat
mpstat查看cpu使用率变化情况
# -P ALL 表示监控所有CPU,后面数字5表示间隔5秒后输出一组数据
$ mpstat -P ALL 5
查看%usr和iowait是否高,判断场景
----------------
----------------
mpstatl: 查看cpu使用率变化 # -P ALL 表示监控所有 CPU,后面数字 5 表示间隔,再后面的数字1 代表count 次数
pidstat查看到底是那个进程导致cpu使用率为100%,杀掉相应进程即可
# 间隔5秒后输出一组数据
$ pidstat -u 5 1
------------------
------------------
pidstat: 监控全部或者指定进程占用系统资源的情况,查看那个进程导致cpu为100%
5 场景
- 平均负载高有可能是CPU密集型进程导致的;
- 平均负载高并不一定代表CPU使用率高,还有可能I/O繁忙;
- 平均负载高可能是多个进程抢占资源场景
6 小结
平均负载反应了整体的负载情况,但只看平均负载本身,并不能直接发现到底是哪里的瓶颈。