迁移至国产超融合后数据库卡顿严重、iops很低、大家有什么排查方向么

现象:
1、从vmware平台克隆至信创平台后出现明显卡顿现象,数据库配置相同
2、信创环境运行tpcc测试每分钟完成tpmC低于200,旧环境约为60000、(信创环境日志中有err1205超时报错)
3、观察iops监控发现tpcc压测时信创环境约为40 io/s,旧环境可以达到750io/s
4、在单独对磁盘进行fio测试时、信创环境的读写和iops表现更好

##所有截图左侧为信创环境、右侧为旧环境

环境截图:



Tpcc压测时截图:
tiup bench tpcc -H 192.168.xxx.xx4,192.168.xxx.xx5,192.168.xxx.xx6 -P4000 -Uroot -p’XXXXXX’ -D tpcc --warehouses 1000 --threads 100 --time 10m run


fio压测时截图:
fio --name=0318 --ioengine=libaio --rw=randrw --rwmixread=70 --bs=4k --numjobs=4 --size=1G --runtime=60 --iodepth=32


数据库日志刷盘/fsync 在信创平台异常慢

这是我认为优先级最高的排查点。

数据库 TPCC 性能很依赖:

redo/binlog/事务日志写入

fsync 延迟

O_DIRECT / fdatasync 行为

虚拟磁盘控制器对 flush/barrier 的支持

很多虚拟化平台会出现:

fio 测吞吐很好

但 fsync 极慢

或 flush 被虚拟化层放大

或 cache policy 不合适

或写屏障/barrier 导致每次提交都卡住

典型表现

CPU 不高

磁盘带宽不高

IOPS 很低

但事务响应时间极差

锁等待明显增加

建议重点检查

MySQL / MariaDB / openGauss / Oracle 之类都类似,重点看:

redo log 写入等待

log file sync

log file parallel write

fsync 次数和平均耗时

commit latency

binlog sync 延迟

如果是 MySQL 类,可以重点看:

innodb_flush_log_at_trx_commit

sync_binlog

innodb_io_capacity

innodb_flush_method

performance_schema 中 wait/io/file 相关等待

SHOW ENGINE INNODB STATUS

慢日志/事务提交耗时

2 个赞

虚拟磁盘控制器 / 磁盘缓存策略 / 驱动类型不匹配

从 VMware 克隆到信创平台后,磁盘控制器类型变化 非常常见,比如:

VMware 原来是 PVSCSI / LSI Logic

新平台变成了其他虚拟 SCSI / VirtIO / SATA 模式

或启用了低性能兼容模式

也可能是:

write through 导致每次写都真实落盘

cache=none / writethrough / directsync 组合不合理

开启了某些“数据安全优先”的同步策略

存储侧有复制/压缩/去重,导致小写入高延迟

要核对的点

虚拟机磁盘总线类型

磁盘驱动是否装了最佳化驱动

是否使用 virtio-scsi / pvscsi 类半虚拟化驱动

是否启用 write back cache

是否有存储侧同步复制

是否 thin provision 严重碎片化

是否有 QoS 限速

是否开启快照链

尤其注意快照链、精简置备、存储 QoS 限速。
这些都可能让数据库随机写性能雪崩,但 fio 单测不一定完全暴露。

3 个赞

并发测试的量挺大啊,操作系统端top结果情况怎么样呢

看起来tpcc中新环境的磁盘性能和负载完全没有调动起来,可以看看新的平台是不是默认磁盘操作参数比较保守

贴一下数据库情况的监控,log sync的情况,lock的情况

多谢我研究一下、

内存、CPU什么的观察是没什么瓶颈、海光确实和因特尔有差距、但不是主要原因啊

海光芯片配置numa后,性能可以提升10~20%。

看下来,还是怀疑超融合的io存在瓶颈,试试跳过缓存测试io能力呢?
–direct=1:direct=1表示绕过机器自带的缓存,0表示使用缓存

跳过缓存后结果也没什么变化 、、、、 :sob:

官方建议是nvme磁盘

感觉可能还是磁盘的问题