怎么识别超售
发布时间:2026-07-27 11:16       
更新时间:2026-07-28 00:18
价格便宜得反常的云服务器,问题多半出在超售上:一台物理机塞进远超其承载能力的虚拟机,平时勉强够用,高峰期大家一起卡。学会几个命令,超售基本藏不住。
一、看 steal time
登录服务器执行 top,头部的 %st(steal time)就是关键指标,它表示宿主机把本该属于你这台虚拟机的 CPU 时间拿去给了别人。长期为 0 说明资源独享性不错;经常大于 5%,说明同宿主机邻居太多,CPU 在被明抢。也可以用 vmstat 1 看输出里的 st 列,原理相同,数字持续非零就要警惕。观察时间也有讲究,把 top 挂着看十分钟比截一张图更能说明问题,因为超售的抢夺是间歇性的,单次截图可能正好错过。
二、看 IO 抖动
超售的另一个重灾区是磁盘。执行 iostat -x 1 10,关注 await 列,也就是每次 IO 的平均等待毫秒数。正常云盘空载时 await 通常在个位数到十几毫秒,如果反复跳到几十上百毫秒,多半是邻居们在抢底层存储。再用 dd if=/dev/zero of=/tmp/t.bin bs=1M count=2048 oflag=direct 测持续写速度,跑三次取平均,数字忽高忽低就说明底层不稳。测完删掉测试文件,别让它占着空间。
三、晚高峰复测
白天测没问题不代表真没问题。很多超售机在晚上八点到十一点才露出原形,因为同宿主机的邻居们这个时段都在跑业务。把上面两条命令在晚高峰再跑一遍,和白天数据对比,差距明显的机器要警惕。有条件的话连续观察一周,工作日和周末各测一轮,数据链条越长,结论越难被推翻。测试时把结果存档,这是后续申诉的证据。
四、发现超售怎么办
先用监控数据说话,把 steal time 曲线和 IO 测试记录整理成工单证据提交,比一句"你们机器太卡"有效得多。如果确认超售且影响业务,换套餐、换节点或迁移是正经解法,争赔偿是次要的,业务稳定才是主要的。迁移到新套餐后,记得按同样的方法再测一轮,别从一个坑跳进另一个坑。买之前多花一小时实测,好过上线后天天救火。