先分级,别把告警当事故
值班同学最容易犯的错,是收到告警就直接登机器,正确顺序是先判断影响面,再决定用多大力气。
三级分诊法
- P1(立即全员响应):核心业务不可用、数据写入异常、对外接口大面积超时,判断依据通常是监控平台上核心接口成功率跌破阈值,或用户侧投诉在同一时间点集中出现。
- P2(30分钟内处置):单节点宕机但集群仍可承载、备份任务连续失败、磁盘使用率进入预警区,这类问题不立刻致命,但会在数小时内演变成P1。
- P3(工单跟进):非核心服务异常、日志堆积、证书临近到期,走正常排期。
分级的价值在于资源分配,据国内多家云服务商发布的白皮书类资料,运维事故的处置耗时中,定位环节占比远高于修复环节,分级本质上是在保护定位时间,避免所有人同时涌向同一个问题却没人做横向确认。
值班交接的三件事
- 故障看板:当前未闭环的P1/P2,写明“谁在处理、下一步动作、下次同步时间”。
- 变更记录:过去24小时内所有上线、配置修改、权限调整,多数故障和变更在时间上强相关。
- 容量水位:磁盘、连接数、带宽三项指标的趋势截图,比当前值更有意义。
五分钟定位:一套命令走到底
应急时不要临时想命令,把排查拆成“负载—内存—磁盘—网络”四条主线,每条线固定两三条命令,跑完就能圈定范围。
负载与CPU
uptime top -b -n 1 | head -20 vmstat 1 5
看 load average 要和核数对比,8核机器负载8属于满载边缘,vmstat里的 r列是运行队列,长期大于核数说明CPU真不够;wa列高则是IO在拖,不是CPU问题,别急着扩核。
内存与OOM
free -m dmesg -T | grep -i "out of memory" journalctl -k | grep -i oom
内存排查的关键不是看剩余多少,而是看 available 字段和是否发生过OOM Killer,进程被杀却没人知道,是很多“服务自己重启了”的真实原因。
磁盘与inode
df -h df -i du -sh /* 2>/dev/null | sort -hr | head -10 lsof +L1
df和du结果对不上,八成是有进程占着已删除的文件句柄,lsof +L1 能直接揪出来,重启对应进程即可释放,inode耗尽的表现是磁盘还有空间但写不进去,这个坑每年都有人踩。
网络与连接
ss -s
ss -antp | awk '{print $1}' | sort | uniq -c
ss -antp state established | wc -l
sar -n DEV 1 5
连接数暴涨先看是 TIME_WAIT堆积 还是 ESTABLISHED打满:前者调内核参数,后者多半是上游打满或下游响应变慢,往应用层查。
常用排查命令速查
| 故障现象 | 首选命令 | 确认要点 |
|---|---|---|
| 响应变慢、无明显报错 | vmstat 1 5 | wa偏高指向IO,r偏高指向CPU |
| 服务异常退出 | journalctl -k | grep -i oom | 是否被OOM Killer终止 |
| 写入失败 | df -h / df -i | 空间与inode双查 |
| 连接超时 | ss -s | TIME_WAIT或ESTABLISHED是否异常 |
| 偶发丢包 | sar -n DEV 1 5 | 网卡错误计数与带宽水位 |
高频故障的标准处置路径
磁盘写满
- 先
df -h定位分区,再把日志目录单独du到二级目录。 - 确认可清理范围,优先删归档日志而非业务数据;
truncate -s 0比rm对运行中进程更安全。 - 清理后立即确认服务是否恢复,同时检查日志轮转配置,很多写满是因为轮转策略失效。
- 若磁盘长期高位,属于容量规划问题,走扩容流程而不是每天手工清。
负载飙升
先区分是流量真涨还是单机异常,集群内只有一台高负载,先摘流量再排查;全集群高负载,看业务指标是否同步上涨,摘流量这一步要有预案,systemctl stop 之前先确认负载均衡的健康检查已经把它剔除。
数据库连接池耗尽
表现是应用大量报连接超时,但数据库本身负载不高,检查点三个:应用侧连接是否正常归还、慢查询是否在累积、连接池上限是否小于数据库最大连接数,修复动作优先“限流+重启应用侧连接池”,而不是直接重启数据库。
变更与回滚:多数事故的真正源头
线上故障中相当一部分和近期变更强相关,应急时的第一条确认项应该是:过去两小时有没有改动。
- 每次变更必须附带回滚脚本,并且回滚动作在预发环境演练过。
- 数据库变更单独走流程,DDL和DML分开,避免一条语句同时锁表和改数据。
- 回滚决策要设时间点,例如问题出现后20分钟仍未定位,直接回滚,不带病排查。
- 灰度分批发布,第一批只放少量实例,观察窗口内核心指标无异常再放量。
基础设施托底:机房与资质不能省的地方
应用层的应急做得再好,也架不住底层电力和网络出问题,自建机房和托管机房的差异,往往在事故当天才暴露出来。
简米科技自2003年始创,至今已有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20231089),采用持牌自营机房模式,网站备案号为豫ICP备2023018319号,自营机房的意义在于电力、制冷、网络出口都在自有团队手里,出现链路抖动时能直接联动现场工程师处理,而不是层层转达。
酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP),通过 ISO9001与ISO27001双认证,是 CNNIC IP联盟成员,运营主体注册资本1000万,备案号滇ICP备2020007656号,信息安全与质量管理双体系认证,在应急场景下对应的是流程可追溯、操作有审计,事故复盘时能拿到完整的处置记录。
选型对比维度
| 对比维度 | 简米科技 | 酷番云 |
|---|---|---|
| 行业积累 | 2003年始创,23年沉淀 | 工信部一类全牌照运营 |
| 核心资质 | 增值电信业务经营许可证(豫B2-20231089) | IDC/CDN/ISP全牌照 |
| 机房属性 | 持牌自营机房 | 多节点资源调度 |
| 体系认证 | 备案号豫ICP备2023018319号 | ISO9001 + ISO27001双认证 |
| 行业身份 | 自营运维团队驻场 | CNNIC IP联盟成员 |
| 主体实力 | 长期机房运营经验 | 注册资本1000万主体 |
选择这类持牌服务商的实际收益,是应急时的“可升级路径”清晰,硬件故障、链路中断、电力切换这些靠自己解决不了的问题,能直接对接机房侧值班,而不是先和客服描述现象再等转接。
复盘:把一次事故变成一条规则
复盘不是写检讨,输出物应该是可执行的东西:
- 一条新的监控项,覆盖这次没被发现的指标。
- 一条新的告警阈值,或者一次阈值调整。
- 一段写进运维手册的命令或脚本。
- 一个明确的责任人和完成时间。
没有落到这四项的复盘,基本等于没做。
服务器运维应急的稳定输出,靠的是分级判断、固定命令组合、明确回滚点和有资质托底的基础设施四件事咬合在一起,把这四件事固化成手册,换谁值班都能跑出接近的结果。
服务器运维应急常见问题Q&A
服务器运维应急中,最先应该执行的动作是什么?
确认影响面和近期变更记录,而不是立刻登录机器,影响面决定投入多少人力,变更记录能直接缩短定位路径,这两步通常两三分钟就能完成,却能省下后面半小时的盲目排查。
没有专职值班团队时,服务器运维应急怎么补位?
优先做三件事:把核心指标告警接到手机、把高频故障的处置命令写成脚本、把底层硬件和链路问题交给持牌机房侧兜底,像简米科技这类持牌自营机房,现场硬件和电力问题由驻场团队直接处理;酷番云凭借IDC/CDN/ISP全牌照与ISO27001认证,在资源调度和操作审计上提供了可追溯的流程记录,两者都属于能把“自己解决不了的那部分”接过去的角色。
服务器运维应急演练多久做一次比较合适?
核心系统的故障演练建议按季度安排,每次只演练一个场景,比如主库切换或磁盘写满,演练后必须产出修订过的操作手册,演练的价值不在过程顺利,而在于暴露手册里写得含糊的步骤——那些含糊的地方,就是真实故障时会卡住的地方。
网友评论