Linux性能优化——平均负载

当打开终端,输入 top uptime 命令时,会出现以下结果:

可以看出,uptime top 的简略版。右上角的 load average 就是我们熟知的平均负载

什么是平均负载?

正确定义:单位时间内,系统中处于可运行状态和不可中断状态的平均进程数。

错误定义:单位时间内的cpu使用率。

可运行状态的进程:正在使用cpu或者正在等待cpu的进程,即 ps aux 命令下 STAT 处于 R 状态的进程。

不可中断状态的进程:处于内核态关键流程中的进程,且不可被打断,如等待硬件设备IO响应,ps 命令 D 状态的进程。

理想状态:每个cpu上都有一个活跃进程,即平均负载数等于cpu数。

过载经验值:平均负载高于cpu数量 70% 的时候。

相关命令

cpu核数:

lscpu

#或者

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

显示平均负载:

#显示的顺序是最近1分钟、5分钟、15分钟,从此可以看出平均负载的趋势
uptime、top

#-d会高亮显示变化的区域
watch -d uptime

#压测命令
strees --cpu(cpu压测选项) -i(io压测选项) -c (进程数压测选项) --timeout	执行时间

#多核cpu性能分析工具
mpstat -P ALL (监视所有cpu)

#进程性能分析工具
pidstat -u (显示cpu利用率)

平均负载与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 较高的进程是否有很多。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值