虚拟化性能问题:为什么很多时候根因是存储延迟?
虚拟机卡顿不一定是 CPU 问题,存储延迟、快照链、备份任务和重平衡都可能影响业务体验。
用户说虚拟机卡,管理员第一反应常常看 CPU 和内存。但在虚拟化平台里,很多性能问题根因是存储延迟。
虚拟机系统盘、数据库盘、日志盘都依赖底层存储。存储延迟升高时,应用线程等待 IO,表现为系统响应慢、Load 高、数据库慢查询增加。
常见原因:
- 底层磁盘故障或性能衰减。
- Ceph recovery/backfill 抢占资源。
- 快照链过长。
- 备份任务与业务高峰重叠。
- 存储网络丢包。
- 精简置备导致底层空间紧张。
排查时要同时看虚拟机内部和宿主机/存储层。
虚拟机内部:
iostat -xz 1
vmstat 1
dmesg -T
平台侧要看存储延迟、队列、恢复状态、磁盘错误和网络错误。
性能排查不要只看平均值。存储 P99 延迟和短时间尖刺,往往比平均延迟更能解释用户体验。
如何关联虚拟机和存储层
虚拟机内部看到 IO 慢,只能说明结果,不一定说明原因。要继续映射到宿主机和后端存储。
虚拟机内部:
iostat -xz 1
pidstat -d 1
宿主机:
iostat -xz 1
ps -eo pid,cmd | grep qemu
Ceph:
ceph -s
ceph osd perf
ceph osd df
如果多个虚拟机同时慢,优先怀疑宿主机或存储层。如果只有一台虚拟机慢,再看应用、文件系统、快照链和虚拟磁盘。
常见处理动作
- 暂停低优先级备份。
- 避免高峰期快照合并。
- 限制 Ceph recovery/backfill 资源。
- 迁移热点虚拟机。
- 更换慢盘或异常 OSD。
