哔前哔言
- 始终践行费曼学习法
- 理解系统知识原理
- 掌握性能分析工具
- 多实践,多思考,多提问
- 仅记录个人的学习记录,欢迎指点纠正
1、前言
什么是平均负载?
用来干什么?
怎么用?
2、平均负载
2.1、定义
平均负载,平均活跃进程总数
是单位时间内,系统处于可运行状态和不可中断状态的平均进程总数
2.2、用途
平均负载是一个系统指标,当平均负载高于CPU数量的70%的时候,需要排查因负载高导致进程响应慢,从而影响服务的正常功能
平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数。所以,它不仅包括了正在使用cpu的进程,还包括等待cpu和等待I/O的进程
cpu使用率,是指单位时间内cpu繁忙情况的统计,跟平均负载并不一定完全对应,
- cpu密集型进程,使用大量cpu会导致平均负载升高,同时cpu使用率也跟着升高,两者是一样的。
- I/O密集型进程,等待I/O也会导致平均负载升高,但cpu使用率不一定很高。
2.3、问题
问:平均负载什么时候最合理?uptime 指令看到的三个负载值的平均值是越小越好吗?
答:平均负载最理想是等于CPU个数,当平均负载高于CPU数量70%的时候,就应该分析排查负载高的问题。
所以三个负载值的平均值不是越小越好。
个人认为说 三个负载值的平均值也只能表示是一个均值,应该看的是趋势变化,近1分钟和前15分钟差距过大,说明负载突然变高,然后需再观察下,负载变高如果持续说明是系统或服务有问题。
2.4、实践
2.4.1、cpu密集型进程
2.4.2、I/O密集型进程
没看到iowait 升高?
stress换成stress-ng :stress-ng -i 1 --hdd 1 --timeout 600
2.4.3、大量进程场景
3、附录
3.1、疑问&解决方案
- stress安装失败,因为centOs7无法安装,一直报错都是“No package stress available”,后来通过找资料使用rmp方式安装,先下载rpm包http://ftp.tu-chemnitz.de/pub..._64/rpmforge/RPMS/stress-1.0.2-1.el7.rf.x86_64.rpm,然后通过rpm -Uvh stress-1.0.2-1.el7.rf.x86_64.rpm 安装
- 没看到iowait 升高?
3.2、工具
- stress 是Linux系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景
- sysstat 是Linux性能工具,用来监控和分析系统的性能,一般会用到这个包的两个命令mpstat 和 pidstat
- mpstat 是常用的多核cpu性能分析工具,用来实时查看每个cpu的性能指标以及所有cpu的平均指标
- pidstat 是一个常用的进程性能分析工具,用来实时查看进程的cpu、内存、I/O以及上下文切换等性能指标
4、引用
- 《极客时间》Linux性能优化实践
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。