top 里偷取时间一列长期在两成以上,业务延迟抖动明显,本机 CPU 使用率并不高,云监控也没有超限提示。

把日志和配置对完,能解释这个现象的基本就这几处。宿主机上其他实例抢占物理核,云厂商按虚拟核超分售卖。也可能是实例规格本身是共享型,性能没有硬性保障。

另外,突发型实例的积分用完之后被限制频率。

动手时先确认偷取时间的持续水平

top -bn1 | grep '%Cpu'

接着看历史趋势判断是否长期

sar -u 1 5

再往下对比同规格实例表现

mpstat 1 5

剩下的就是确认是否运行在虚拟化环境

lscpu | grep -i hypervisor

改之前先确认了最近有没有人动过配置,避免白查一遍。

改完先别撤,确认这几项。更换实例规格或者迁移之后偷取时间降到百分之三以内,业务延迟恢复平稳。

补一句。偷取时间高不是本机配置的问题,优化代码没有用,该做的是核对实例规格和宿主机负载。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189