【发布时间】:2019-09-18 14:19:50
【问题描述】:
我有一个运行两个 QEMU KVM 虚拟机的系统,它们是彼此相同的克隆。两个 VM 都从同一个主 MySQL 数据库进行复制。一台虚拟机 (vm-01) 正在承载活动负载,并且运行良好。然而,另一个(备用)虚拟机(vm-02)在今天早上 08:00 突然在复制方面落后了,即使复制运行正常,它仍然以缓慢的速度进一步落后(每 10 秒落后 1 秒)即时的)。迄今为止,vm-02 已经完美运行了几个月。
在检查了所有常见的问题(CPU 负载、磁盘空间、SQL 查询错误等)之后,结果发现一切都很好……除了虚拟磁盘 IO - 特别是写入请求 (WRRQ)。在主机上:
virt-top 16:01:35 - x86_64 16/16CPU 1596MHz 128915MB
3 domains, 2 active, 2 running, 0 sleeping, 0 paused, 1 inactive D:0 O:0 X:0
CPU: 1.8% Mem: 32768 MB (32768 MB by guests)
ID S RDRQ WRRQ RXBY TXBY %CPU %MEM TIME NAME
3 R 3 1 113K 20K 1.3 12.0 62d21:21 vm-01-ubuntu
9 R 0 563 97K 11K 0.5 12.0 83:09:51 vm-02-ubuntu
- (vm-Clone-ubuntu)
两个 VM 都禁用了 bin-log,因此它们只写入了 relay-bin-log。除了完全相同的主 SQL 命令之外,活动机器 (vm-01-ubuntu) 正在运行数以千计的半径请求,而且运行良好……并且它正在愉快地运行一些写入请求。但是备用机落后了,有数百个写入请求……可能与复制追赶有关……但是这么慢?
检查虚拟机上的磁盘 IO:
vm-01:~# iostat -x
Linux 4.4.0-141-generic (vm-finrad01) 18/09/2019 _i686_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
12,04 0,02 9,85 13,87 0,13 64,09
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0,00 13,91 0,91 147,67 5,20 16,05 0,29 0,11 0,72 0,57 0,73 0,04 0,65
vm-02:~# iostat -x
Linux 4.4.0-141-generic (vm-finrad02) 18/09/2019 _i686_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0,26 0,01 0,25 6,46 0,09 92,93
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
vda 0,00 1,22 0,00 34,19 0,20 21,43 1,26 0,00 0,14 0,96 0,14 0,03 0,09
不会产生任何明显的问题,尤其是因为繁忙的虚拟机 (vm-01) 正在按预期执行更多操作。
主机具有 128Gb 的 RAM、大量的 SSD 驱动器空间,并且仅以 30% 的 CPU 使用率运行。没有 RAID 或驱动器问题。
鉴于 WRRQ 计数是迄今为止 vm-02 落后的唯一证据,因此有任何关于下一步检查的建议。还是我在追逐红鲱鱼?
【问题讨论】:
标签: replication qemu kvm