平均负载排查---学习笔记

负载:

uptime:查看平均负载

如果 1 分钟、5 分钟、15 分钟的三个值基本相同,或者相差不大,那就说明系统负载很平稳。但如果 1 分钟的值远小于 15 分钟的值,就说明系统最近 1 分钟的负载在减少,而过去 15 分钟内却有很大的负载。反过来,如果 1 分钟的值远大于 15 分钟的值,就说明最近 1 分钟的负载在增加,这种增加有可能只是临时性的,也有可能还会持续增加下去,所以就需要持续观察。一旦 1 分钟的平均负载接近或超过了 CPU 的个数,就意味着系统正在发生过载的问题,这时就得分析调查是哪里导致的问题,并要想办法优化了。

查询有几个cpu: 产看操作步骤

top,之后按1;

grep 'model name' /proc/cpuinfo | wc -l

free -g :以GB为单位查看内存信息

安装stress,sysstat

stress 是一个 Linux 系统压力测试工具,用作异常进程模拟平均负载升高的场景。

sysstat 包含了常用的 Linux 性能工具,用来监控和分析系统的性能。我们的案例会用到这个包的两个命令 mpstat 和 pidstat。

mpstat 是一个常用的多核 CPU 性能分析工具,用来实时查看每个 CPU 的性能指标,以及所有 CPU 的平均指标。

pidstat 是一个常用的进程性能分析工具,用来实时查看进程的 CPU、内存、I/O 以及上下文切换等性能指标。

三种情况会导致cpu升高:

场景一:CPU 密集型进程 CPU 使用率 100% 的场景 :stress --cpu 1 --timeout 600

场景二:I/O 密集型进程 模拟 I/O 压力,即不停地执行 sync: stress -i 1 --timeout 600

场景三:大量进程的场景 这次模拟的是 8 个进程:$ stress -c 8 --timeout 600

查看cpu使用率,同时查看iowait

uptime 查看平均负载的变化情况:

# -d 参数表示高亮显示变化的区域

$ watch -d uptime

mpstat 查看 CPU 使用率的变化情况:

# -P ALL 表示监控所有CPU,后面数字5表示间隔5秒后输出一组数据

$ mpstat -P ALL 5

查询那个进程导致cpu升高

# 间隔5秒后输出一组数据

$ pidstat -u 5 1

平均负载与cpu使用率的区别

CPU使用率:单位时间内cpu繁忙情况的统计(怎么样区分这三种情况)

情况1:CPU密集型进程,CPU使用率和平均负载基本一情况2:IO密集型进程,平均负载升高,CPU使用率不一定升高

情况3:大量等待CPU的进程调度,平均负载升高,CPU使用率也升高

四、平均负载过高时,如何调优

工具:stress、sysstat,yum即可安装

1. CPU密集型进程case:

mpstat -P ALL 5: -P ALL表示监控所有CPU,5表示每5秒刷新一次数据,观察是否有某个cpu的%usr会很高,但iowait应很低

pidstat -u 5 1:每5秒输出一组数据,观察哪个进程%cpu很高,但是%wait很低,极有可能就是这个进程导致cpu飚高

2. IO密集型进程case:

mpstat -P ALL 5: 观察是否有某个cpu的%iowait很高,同时%usr也较高

pidstat -u 5 1:观察哪个进程%wait较高,同时%CPU也较高

3. 大量进程case:

pidstat -u 5 1:观察那些%wait较高的进程是否有很多

mpstat 是一个常用的多核 CPU 性能分析工具,用来实时查看每个 CPU 的性能指标,以及所有 CPU 的平均指标。

pidstat 是一个常用的进程性能分析工具,用来实时查看进程的 CPU、内存、I/O 以及上下文切换等性能指标。

总结

三种场景CPU使用率和wait等待情况分析

场景一:CPU 密集型进程

1、 先监控所有cpu,看到那个CPU的使用率最高,且 iowait 只有 0,说明平均负载的升高正是由于 CPU 使用率为 100%

mpstat -P ALL 5 -P ALL 表示监控所有CPU,后面数字5表示间隔5秒后输出一组数据

2、通过pidstat查看那个进程导致cpu的使用率为100%

pidstat -u 5 1 # 间隔5秒后输出一组数据

场景二:I/O 密集型

1、 先监控所有cpu, CPU 的系统 CPU 使用率升高到了 23.87,而 iowait 高达 67.53%。这说明,平均负载的升高是由于 iowait 的升高

mpstat -P ALL 5 -P ALL 表示监控所有CPU,后面数字5表示间隔5秒后输出一组数据

# 间隔5秒后输出一组数据,-u表示CPU指标

$ pidstat -u 5 1

场景三:大量进程

$ pidstat -u 5 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值