CPU 负载高,到底应不应该告警?

  • 不告警吧,出了问题怕被怼,嫌你告警缺失
  • 告警吧,好像全是噪音,工程师都自动忽略了

尴尬...

成年人的世界没有非黑即白,如果要严肃的论述,就要加很多限定词,为了避免歧义拉齐认知,我先补充一点前置知识(原则)。

前置知识(原则)

告警应该有不同的紧迫级别,有些公司甚至会规定 6 个级别(估计自己的工程师都捋不清楚...),通常建议 3 个级别足够了:

  • Critical:已经影响业务,立马需要处理。通常使用打扰性很强的多个告警通知媒介一起发告警消息,比如电话+短信+IM+邮件。比如电商业务订单量下跌严重,就是紧急告警。
  • Warning:不用立马处理,可以自动建立工单,慢慢处理。但也必须要处理,如果不处理,可能会酿成大故障。通常也要发告警,只不过选用的通知媒介没有那么强的打扰性。比如重要机器的磁盘使用率已经 95%,可能再有 24 小时就要写满了;或域名证书再有 3 天就要过期了之类的。
  • Info:仅生成告警事件,不用发告警通知,相当于是从海量指标里提取了一些稍微重要的信息。如果有故障发生,这些信息是作为故障排查的线索依据。比如某个 Pod 被驱逐漂移了;或者某个用户尝试登录系统的失败次数太多。

整体来看,可以分成两个大类:

  • 要处理的:Critical、Warning
  • 不用处理的:Info

其中,Info 不关键,可配可不配,完全可以等到后面你的监控、故障定位体系做得很精细化的时候再说。我们重点关注前面两个级别:Critical 和 Warning,这俩级别有个相同点,就是都!要!处!理!英文世界里通常称之为 actionable(感觉很精确)。

所以,CPU 负载高,到底要不要配置告警?

CPU 告警的制定逻辑

  • 如果 CPU 告警产生之后,你们有后续处理动作,那就应该配置,即便这个动作是登录机器瞅一眼,出两句跟进结论,也算动作
  • 如果没有后续动作就无需配置,比如看到了这个告警,习惯了,直接忽略了,这就不算动作,这个告警就不应该配置;或者,也可以配置,但是作为 Info 级别,仅生成告警事件,不做告警通知

其实,不仅仅是 CPU 告警,所有的告警规则配置,都是这个逻辑,所有的告警规则,都应该是 actionable 的。所以,理论上,每个告警规则都应该对应一个 SOP(处理预案),Prometheus 和夜莺的告警规则里都有个 Annotations 字段,典型的应该放到 Annotations 中的字段就是 SOP URL 和 Dashboard URL。

很多人看到这里,觉得,那这个工作量大了,每个告警规则都要整理 SOP(不同的公司 SOP 通常不同,一些中间件、数据库的部分 SOP 可能相同),之前就仅仅是从网上找了一些告警规则导入即可,以为就完事了,没成想还有这些活要干!

其实,相比搭建一套监控系统,这才是更有价值的事情啊!

本文作者:秦晓辉,夜莺开源项目创始人,极客时间专栏《运维监控系统实战笔记》作者,目前在监控、可观测性领域创业。

CPU 负载高,到底应不应该告警?的更多相关文章

  1. Java项目排查cpu负载高

    背景 我负责的其中一个项目在空负载的情况下,CPU占用率依然保持着100%左右,线上.测试.开发的服务都一样:是什么导致的呢?在开发环境我查看了请求流量,这个流量可以忽略但CPU占用率一直在60%-1 ...

  2. cpu负载高简单排查思路

    首先通过uptime查看系统负载,然后使用mpstat结合pidstat来初步判断到底是cpu计算量大还是进程争抢过大或者是io过多,接着使用vmstat分析切换次数,以及切换类型,来进一步判断到底是 ...

  3. Linux系统排查——CPU负载篇

    本随笔介绍CPU负载的排查手段. 查看系统负载的工具:uptime,w,都能查看系统负载,系统平均负载是处于运行或不可打扰状态的进程的平均数, 可运行:运行态,占用CPU,或就绪态,等待CPU调度. ...

  4. MySQL案例05:CPU负载优化

    最近有套系统数据库周末总是告警,CPU使用率超过90%,开始由开发那边再跟进处理,我也就没参与,后来发现没进展就登录上去看了下,然后进行了部分优化,优化后效果还是比较明显的,具体优化过程本文会做详细的 ...

  5. Linux系统排查2——CPU负载篇

    本随笔介绍CPU负载的排查手段. 查看系统负载的工具:uptime,w,都能查看系统负载,系统平均负载是处于运行或不可打扰状态的进程的平均数, 可运行:运行态,占用CPU,或就绪态,等待CPU调度. ...

  6. Shell----监控CPU/内存/负载高时的进程

    Shell----监控CPU/内存/负载高时的进程 1.编写脚本 vim cpu-warning.sh #!/bin/bash #监控系统cpu的情况脚本程序 #取当前空闲cpu百份比值(只取整数部分 ...

  7. cpu使用率低负载高,原因分析

    原因总结 产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低. 下面内容是具体的原理分析:在分析负载为什么 ...

  8. 现网CPU飙高,Full GC告警

    现网CPU飙高,Full GC告警 https://www.cnblogs.com/QG-whz/p/9647614.html 问题出现:现网CPU飙高,Full GC告警 CGI 服务发布到现网后, ...

  9. CPU 使用率低 but负载高

    一.关于负载 什么是负载:负载就是cpu在一段时间内正在处理以及等待cpu处理的进程数之和的统计信息,也就是cpu使用队列的长度统计信息,这个数字越小越好(如果超过CPU核心*0.7就是不正常) 负载 ...

  10. 服务器cpu负载过高问题排查

    https://blog.csdn.net/MrZhangXL/article/details/77711996 第一步 :执行top命令,查出当前机器线程情况 top - 09:14:36 up 1 ...

随机推荐

  1. 浅谈鸿蒙跨平台开发框架ArkUI-X

    之前写过使用uniapp的跨平台开发鸿蒙项目,今天分享一下开发体验更友好的跨平台开发框架ArkUI-X. ArkUI-X看起来像是鸿蒙官方的框架,在DevEco中就可以安装和使用,而且会ArkUI就可 ...

  2. LR梯度下降法MSE演练

    同步进行一波网上代码搬砖, 先来个入门的线性回归模型训练, 基于梯度下降法来, 优化用 MSE 来做. 理论部分就不讲了, 网上一大堆, 我自己也是理解好多年了, 什么 偏导数, 梯度(多远函数一阶偏 ...

  3. Vmware workstation安装部署微软SCCM服务系统

    VMware Workstation部署微软SCCM 2303完整操作指南 简介 sccm(System Center Configuration Manager),是微软系统中心配置管理器内部简称. ...

  4. Spring注解之获取自定义注解信息

    目录 前言 由反射获取自定义注解 结束语 前言   在了解了自定义注解的入门知识后,以实践的形式,介绍一下通过反射技术获取自定义注解的常用API,例如如何获取自定义注解的成员变量值等等. 由反射获取自 ...

  5. Vue 学习笔记 [Part 7]

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 一. Promise 1.0 什么是Promise 1.1. Promise的基本使用 1.2. Promise的链式调用 1.3. Prom ...

  6. 信创迁移必看!X86 迁 Arm 竟能全自动适配?

    在信创技术转型的背景下,X86 到 Arm 架构的迁移确实是不少企业面临的实际挑战.最近在和客户对接信创项目时,我们也深度接触了这类场景,原本基于 X86 架构构建的容器应用,在迁移至 Arm 服务器 ...

  7. 安全感知平台SIP-部署简介

    部署安装前前期调研: NDR:全流量高级威胁检测: NDR是一款专门围绕"高级威胁检测"为核心,主打全流量采集.快速检测.威胁定位.研判溯源.联动闭环一体化的专业流量检测系统:内置 ...

  8. 爆肝整理!0 基础 AI 编程必拿的 3 大神器:源码一键跑 + 推广秘籍 + 私教答疑

    2025年预期的 AI 应用爆发并没有到来,但是编程领域却是个特例.AI 编程工具正在引领大模型落地的浪潮,展现出明显的产品市场契合度(Product Market Fit,PMF). 那么在全面智能 ...

  9. A0-Z9

    首位字母A-Z,第二位数字0-9,组流水号. 将字母转成ascii 码,拼接数字,组成一个三位数字. 将这个三位的数字+1,再把这个三位数前两位转回字母,重新拼接出字母+数字 REPORT zlyte ...

  10. Vue 结合Sortablejs实现table行排序

    场景 在一个列表展示页面上,使用了表格组件,原有组件本身不支持拖拽功能,需求要求在列表的基础上支持行拖拽排序.因此引入了Sortablejs插件. 问题及解决方案 引入Sortablejs后刚开始都很 ...