单位 4 / 11

容量和性能监控:读取指标并规划未来

收益:

  • 能够通过使用百分位数 (p95/p99) 和基线而不是平均值,在人工智能支持下正确解释指标
  • 能够将季节性与趋势分开,并将容量预测作为乐观-悲观范围而不是单个数字
  • 了解资源投资和警报阈值决策是人为的,以及资源交付时间和业务背景。

容量和性能监控:利用 AI 读取指标并规划未来

你无法亲眼看到系统的健康状况;您可以通过指标来理解它。指标是系统可测量特征的与时间相关的数值:CPU 使用率、内存占用率、磁盘可用空间、网络延迟、每秒请求数。性能监控不断收集这些指标并回答“系统现在正常吗?”的问题。容量规划更进一步:它回答了“按照这样的速度,什么时候我会变得不足,我什么时候应该购买新资源?”的问题。在这里,人工智能是一个高技能的助手,可以解释大量指标、标记异常、解读趋势并生成未来预测。但首先需要注意的是:人工智能从历史数据中提取模式;您是根据上下文做出资源投资、扩展和警报阈值决策的人。

在本单元中,监控基线(正常行为线)、异常(偏离正常)、百分位数(百分位数)等概念;人工智能的指标解释;趋势和增长预测;您将学习如何设置正确的警报阈值。

平均值的谎言:为什么是百分制?

跟踪中最常见的错误是用平均值来衡量一切。假设您的平均响应时间为 200 毫秒。听起来不错。但5%的用户可能会等待8秒;平均值掩盖了这一点。这就是专业人士使用百分位数的原因:p95 =“95% 的请求低于此时间段。”如果 p95 响应时间为 8 秒,那么二十分之一的用户将获得糟糕的体验 - 平均值从未显示出这一点。向 AI 提供指标时,请明确您想要哪个统计数据:“向我解释 p50、p95 和 p99,而不是平均值。”这一习惯暴露了隐藏的问题。

提示:查看与用户体验相关的每个指标的百分位(响应时间、延迟); p95/p99 而不是平均值让你接触到真正受苦的少数群体。在资源指标(CPU、内存)中,查看峰值和持续值。

没有基线就没有异常

在判断某个指标是否“异常”之前,您需要先了解“正常”。基线是健康日子里系统的典型行为范围:“此服务工作日中午 CPU 通常为 40–60%”。如果没有基线,您就无法知道 70% 的值是可怕的还是正常的。您可以通过向人工智能提供历史健康数据并说“提取该指标的正常范围和每日/每周模式”来设置基线。然后你根据这个基线解释新数据:“这个值在哪里是正常的?”异常是指与基线的显着且持续的偏差——一次突然的跳跃通常是噪音。

逐步:容量预测

  1. 收集干净且充分的历史记录。趋势需要至少几周的数据,最好是每月的数据。用少量数据做出的预测是猜测,而不是预测。
  2. 季节性不同。周末流量下降,月末流量增加,活动期间流量激增。告诉人工智能这些周期,这样它就不会混淆增长与季节性波动。
  3. 脱下潮流。 “过去 8 周内该磁盘平均每周增长了多少 GB?”人工智能计算增长率。
  4. 要求投影,将其隔开。 “照这样下去,磁盘什么时候才能达到90%满呢?” - 但要求乐观/悲观的范围,而不是单个日期。未来是不确定的;奇数是假精度。
  5. 与人一起确定决策阈值。如果预测说“将在 6 周内完成”,您会考虑采购时间(购买、批准)并决定是否立即采取行动。
  6. 正确设置闹钟。非常灵敏的报警会产生噪音和报警疲劳;太松的警报会错过该事件。从人工智能那里获取阈值建议,但根据自己的风险承受能力确定最终阈值。

三个迷你箱子

案例 1 — 平均隐藏,p99 显示。一个团队认为他们的 API“平均 180 毫秒,很好”。当我将指标提供给 AI 并要求进行百分位数解释时,结果发现 p99 为 6,400 毫秒——每 100 个请求中有一个慢于 6 秒。根本原因是数据库查询速度慢。虽然平均水平看起来很健康,但少数人的经历却很糟糕。

案例 2 — 投影提前 3 周发出警告。管理员将日志磁盘占用数据提供给AI。 AI 推断出每周约 7 GB 的增长趋势,并预测按照目前的速度,19 天内将达到 90%,乐观-悲观区间为 16-23 天。由于需要 10 天的时间才能提供新磁盘,因此团队立即下订单,并在故障发生之前阻止了故障。

案例 3 — 从错误异常中返回。每个周日晚上都会发出监控警报,显示 CPU 利用率高达 95%。在惊慌失措之前,工程师让人工智能提高了基线:这次跳跃是计划好的备份工作,每周都会在同一时间发生,所以这是常态的一部分。这并不是什么异常现象,而是正常现象。基线缺失。该时间段的警报阈值已得到纠正,不必要的夜间醒来现象也消失了。

四个可复制模板

1) 指标解释(百分位):

以下是[服务]响应时间指标(已屏蔽)。给我评论p50、p95和p99,不是平均值。 p99和p50的区别意味着什么,说明了哪些用户体验问题?不要添加虚构的值,只需解释我给您的数据即可。数据:[指标]

2)基线减法:

以下是过去 4 周的健康[指标]数据。提取该指标的 (1) 正常范围 (2) 每日和每周模式(例如夜间最低点、中午最高点)。然后我将给出一个新值;根据此基线将其分类为“正常/警告/异常”。数据:[历史指标]

3)容量预测(带范围):

以下是过去 8 周的[资源]占用数据。 (1) 计算周平均增长率,(2) 表明季节性影响,(3) 估计当前增长率达到 90% 阈值的时间,包括乐观和悲观范围。给出一个日期,给出一个范围,然后写下你的假设。数据:[时间序列]

4)报警阈值推荐:

我的[指标]基线是[范围]。我的目标是在不遗漏真正问题的情况下最大限度地减少误报。给我一个关于 (1) 警告和 (2) 临界阈值的建议,证明每个阈值的合理性并评估警报疲劳的风险。我将确定最终的门槛。

弱提示/强提示

弱提示:

我的服务器速度慢吗?

没有背景,没有指标,也没有基线。人工智能既不知道“慢”的定义,也没有一个正常值可以与之比较。答案是一个无意义的猜测。

强力提示:

您的角色:容量规划专家。以下是最近 14 天的 API 的 p95 响应时间和每秒请求数数据(已屏蔽)。我的 p95 基线是 250-400 毫秒。告诉我 (1) 标记过去 14 天内超出基线的天数,(2) 告诉我响应时间和请求负载之间是否存在明显的关系(作为假设),(3) 如果这种趋势持续下去,预测 30 天内 p95 的走向。数据:[时间序列]

公制类型

错误的测量

精确测量

响应时间

只是平均水平

p50、p95、p99

中央处理器/内存

瞬时值

峰值+持续+基线

椎间盘生长

今日入住人数

每周趋势+预测

异常

单次弹跳

连续偏离基线

警报

任意单一阈值

合理警告+临界阈值

常见错误

  • 用平均值来衡量一切。平均水平掩盖了少数人的糟糕经历;请参阅百分位数。
  • 在没有基线的情况下搜索异常。如果不知道什么是正常值,就不能说它是异常值;你制造了一个误报。
  • 将季节性误认为趋势。将竞选高峰视为永久性增长并占用不必要的资源会产生金钱成本。
  • 依靠奇数投影。 “正好 19 天”是错误的精确度;使用乐观-悲观范围。
  • 忘记采购时间。不一起考虑投影门槛和购买时间的团队将会陷入中断。
注意:人工智能的趋势预测假设过去将持续到未来。新产品的发布、客户迁移或架构变更都会破坏这一假设。你的工作就是根据你的上下文来纠正预测。

总之

性能监控回答了“现在好吗?”的问题。容量规划回答了“什么时候不够?”的问题。人工智能是解释指标、建立基线、标记异常和预测趋势方面的强大合作伙伴。但平均值是谎言——使用百分位数;没有基线就没有异常——首先建立正常;将季节性与趋势分开;并将投影视为一个范围,而不是单个数字。资源投资和警报阈值决策以及资源交付时间和业务环境都是人为的。

应用任务

从您自己的系统中获取资源(磁盘、内存、响应时间)的最后几周数据并屏蔽敏感区域。使用上面的“基线扣除”模板减去正常范围和模式。然后让“容量预测”模板预测您何时会达到乐观-悲观范围的阈值。另外,使用“百分位数”模板解释您的响应时间指标,并查看平均值是否隐藏了任何内容。用 5 项写下您的发现和您将采取的行动。

清单

  • [ ] 我是否查看了 p95/p99 而不是响应时间指标的平均值?
  • [ ] 在寻找异常之前,我是否已根据健康数据建立了基线?
  • [ ] 我是否区分了季节性波动和永久趋势?
  • [ ] 我是否将预测视为乐观-悲观范围而不是单个日期?
  • [ ] 我是否评估了采购时间和预测阈值?
  • [ ] 我是否根据自己的风险承受能力而不是人工智能建议设置了警报阈值?