哔前哔言

  • 始终践行费曼学习法
  • 理解系统知识原理
  • 掌握性能分析工具
  • 多实践,多思考,多提问
  • 仅记录个人的学习记录,欢迎指点纠正

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密集型进程

001.p![001.png

2.4.2、I/O密集型进程

002.png

没看到iowait 升高?
stress换成stress-ng :stress-ng -i 1 --hdd 1 --timeout 600

2.4.3、大量进程场景

003.png

3、附录

3.1、疑问&解决方案

  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 安装
  2. 没看到iowait 升高?

3.2、工具

  • stress 是Linux系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景
  • sysstat 是Linux性能工具,用来监控和分析系统的性能,一般会用到这个包的两个命令mpstat 和 pidstat
  • mpstat 是常用的多核cpu性能分析工具,用来实时查看每个cpu的性能指标以及所有cpu的平均指标
  • pidstat 是一个常用的进程性能分析工具,用来实时查看进程的cpu、内存、I/O以及上下文切换等性能指标

4、引用

  • 《极客时间》Linux性能优化实践

南吕十八
5 声望3 粉丝

空白的简介,空白的人生