CPU 负载高,到底应不应该告警?
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 负载高,到底应不应该告警?的更多相关文章
- Java项目排查cpu负载高
背景 我负责的其中一个项目在空负载的情况下,CPU占用率依然保持着100%左右,线上.测试.开发的服务都一样:是什么导致的呢?在开发环境我查看了请求流量,这个流量可以忽略但CPU占用率一直在60%-1 ...
- cpu负载高简单排查思路
首先通过uptime查看系统负载,然后使用mpstat结合pidstat来初步判断到底是cpu计算量大还是进程争抢过大或者是io过多,接着使用vmstat分析切换次数,以及切换类型,来进一步判断到底是 ...
- Linux系统排查——CPU负载篇
本随笔介绍CPU负载的排查手段. 查看系统负载的工具:uptime,w,都能查看系统负载,系统平均负载是处于运行或不可打扰状态的进程的平均数, 可运行:运行态,占用CPU,或就绪态,等待CPU调度. ...
- MySQL案例05:CPU负载优化
最近有套系统数据库周末总是告警,CPU使用率超过90%,开始由开发那边再跟进处理,我也就没参与,后来发现没进展就登录上去看了下,然后进行了部分优化,优化后效果还是比较明显的,具体优化过程本文会做详细的 ...
- Linux系统排查2——CPU负载篇
本随笔介绍CPU负载的排查手段. 查看系统负载的工具:uptime,w,都能查看系统负载,系统平均负载是处于运行或不可打扰状态的进程的平均数, 可运行:运行态,占用CPU,或就绪态,等待CPU调度. ...
- Shell----监控CPU/内存/负载高时的进程
Shell----监控CPU/内存/负载高时的进程 1.编写脚本 vim cpu-warning.sh #!/bin/bash #监控系统cpu的情况脚本程序 #取当前空闲cpu百份比值(只取整数部分 ...
- cpu使用率低负载高,原因分析
原因总结 产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低. 下面内容是具体的原理分析:在分析负载为什么 ...
- 现网CPU飙高,Full GC告警
现网CPU飙高,Full GC告警 https://www.cnblogs.com/QG-whz/p/9647614.html 问题出现:现网CPU飙高,Full GC告警 CGI 服务发布到现网后, ...
- CPU 使用率低 but负载高
一.关于负载 什么是负载:负载就是cpu在一段时间内正在处理以及等待cpu处理的进程数之和的统计信息,也就是cpu使用队列的长度统计信息,这个数字越小越好(如果超过CPU核心*0.7就是不正常) 负载 ...
- 服务器cpu负载过高问题排查
https://blog.csdn.net/MrZhangXL/article/details/77711996 第一步 :执行top命令,查出当前机器线程情况 top - 09:14:36 up 1 ...
随机推荐
- 网络编程:阻塞I/O和进程模型
父进程和子进程 进程是程序执行的最小单位,一个进程有完整的地址空间.程序计数器等,如果想创建一个新的进程,使用函数 fork 就可以 pid_t fork(void) 返回:在子进程中为0,在父进程中 ...
- Data wrangling:Join,Combine,and Reshape,in Pandas
Data wrangling:Join,Combine,and Reshape,in Pandas import pandas as pd import numpy as np Hierarchica ...
- 必看!手把手教你玩转Dify的3大核心工具!
Dify 中的工具是指其平台内置或支持集成的功能插件,用于扩展 AI 应用的能力. 1.工具作用 扩展 LLM 的能力:工具可以赋予 LLM 连接外部世界的能力,例如联网搜索.科学计算.绘制图片等.例 ...
- MCP Server On FC 之旅第四站: 长连接闲置计费最高降低87%成本的技术内幕
函数计算( FC )是阿里云事件驱动的全托管计算服务, 使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码或镜像.函数计算为您准备好计算资源,弹性地.可靠地运行任务,并提供日志查询.性 ...
- .tar.gz 软件压缩包打包 AppImage 指南
要想打包 AppImage 分3步走 生成 AppDir 拷贝资源及依赖文件 生成 AppImage 准备工作 下载打包工具 linuxdeploy appimagetool 下载/解压 好要打包的程 ...
- [nodejs原型链污染及绕过]校赛第四次纳新赛 bypass WP
前言 赛后自学了nodejs原型链污染后来尝试做这个题,难度不算太大,但是绕过姿势非常奇怪没见过,写一篇总结记录一下做法 wp 首先打开环境发现是一个登录框,题目有附件我们下载查看附件 最关键的就是c ...
- 解决 Electron 安装失败问题的实用指南
遇到安装失败问题? 在国内或其他网络受限的环境中,安装 Electron 时可能会遇到各种错误.以下是一些解决这些问题的有效方法. 如果您在Electron-Egg安装过程中遇到安装npm包报错的问题 ...
- JWT令牌如何在FastAPI中实现安全又高效的生成与验证?
title: JWT令牌如何在FastAPI中实现安全又高效的生成与验证? date: 2025/06/10 09:02:35 updated: 2025/06/10 09:02:35 author: ...
- WebSocket网络通信
WebSocket 网络通信 导入依赖: <!-- WebSocket依赖 --> <dependency> <groupId>log4j</groupId& ...
- .NET 10 支持Linux 的Shebang(Hashbang)
.NET 10 Preview 5 带来的C# 文件脚本化运行,在 Linux/Unix 系统中通过 #!/usr/bin/dotnet run 支持 Shebang(Hashbang) 的详细说明: ...