系统性能分析方法

分析方法类型

当系统出现性能问题时,对系统进行性能分析有多种方法,这些分析方法可以归纳为以下类型:

  • 观测分析
  • 实验分析
  • 假设分析
  • 观察与实验分析
  • 信息收集
  • 生命周期分析

上述类型对应可能多种方法,但在使用这些方法前,尽量先进行信息收集,对应的方法为问题陈述法 。

问题陈述

当出现问题时,应首先对反映问题的团队询问以下问题来掌握更多的问题细节:

  1. 是什么让你觉得出现了性能问题
  2. 系统之前运行的情况
  3. 最近有无变更
  4. 问题是否能用具体指标进行描述
  5. 问题是否对其它组件或人员产生影响
  6. 系统信息,日志等

通过上述问题的答案可以提出合理的假设,然后进行验证。

常用的观测分析方法

以下是常用的观测分析方法,容易且高效。

核对清单法

在检查和调试系统时,核对清单中的每一项内容,确保变更或部署出现认为错误,也可以检查关键点是否与清单出现不一致的情况。使用这种方法的前提是团队需要维护好清单项,在变更或部署的时候同步好清单项。

科学分析法

科学分析法围绕着假设和实验进行分析的,通常有以下步骤:

  1. 问题
  2. 假设
  3. 预测
  4. 试验
  5. 分析

如果找不出问题,则重复该流程,提出新的假设。

工具法

以工具为导向的方法,主要是使用工具获取性能指标,根据指标来找出问题的方法,通常有以下流程:

  1. 确定使用的性能分析工具 sar perf …
  2. 确定使用性能分析工具提供的指标
  3. 收集性能指标,根据其值来确定问题

USE 方法

USE 方法可帮助快速分析系统性能,找到可能存在的性能问题或性能瓶颈。
Utilization Saturation and Errors(USE) 方法非常适合针对硬件进行快速分析系统性能,找出可能存在的性能问题或性能瓶颈。
核心理念是:
对各个独立的资源检查其错误率、利用率和饱和度
所以当硬件资源因为错误率、利用率和饱和度较高导致性能出现问题的复杂系统中是非常有效的。

USE方法使用的术语

  • 资源 Resource :系统中的硬件资源(CPU、RAM、DISK、NET)。
  • 利用率 Utilization :资源提供服务的平均时间,在规定的时间间隔内,资源用于服务工作的时间的百分比。
  • 饱和度 Saturation :资源承担额外工作的能力,资源不能再服务更多额外工作的程度,通常有等待队列。
  • 错误 Errors :错误事件的数量

指标和资源类型

对硬件资源需要找出使用率、饱和度、错误这三个指标,不同的资源对应的指标类型可能不一致。

资源 类型 指标
CPU 使用率 CPU 使用率 percentage of use
CPU 饱和度 分配队列长度 queue average, load average
内存 使用率 可用空闲内存 free capacity
内存 饱和度 swap 或者 OOM 事件
网络 使用率 传输和接收的吞吐量和最大带宽 throughput
网络 错误 丢包冲突事件 packet loss, errors, collisions
存储 使用率 设备使用率 IOPS
存储 饱和度 等待队列长度 I/O wait time

形成检查清单后,根据 USE 推荐的流程进行逐一检查:

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

滚动至顶部