【问题标题】:QEMU KVM disk IO/SQL replication issue, on one of two identical clone VM'sQEMU KVM 磁盘 IO/SQL 复制问题,在两个相同的克隆 VM 之一上
【发布时间】: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


    【解决方案1】:

    问题与客户操作系统有关,与虚拟机设置无关。

    在 Ubuntu 上,apt 自动更新功能非常激进,在两个可疑 VM 的情况下,apt 试图不断更新存储库,不断以 16mB/s 的速度写入。这可能与Guest OS是Ubuntu 14.04有关,并且不再维护repos。

    解决方案是禁用自动更新,而是手动运行更新。 作为根:

    service unattended-upgrades stop
    echo manual | tee /etc/init/unattended-upgrades.override
    

    然后,编辑 apt 配置以禁用软件包自动刷新。替换 "APT::Periodic::Update-Package-Lists "1";"用“0”:

    cd /etc/apt/apt.conf.d/
    cp 10periodic 10periodic.original
    cat 10periodic | awk -F" " '$1=="APT::Periodic::Update-Package-Lists" {printf "%s %s\n",$1,"\"0\";"; next}1' > 10periodic
    

    最后,从自动升级列表中禁用 repos:

    nano /etc/apt/apt.conf.d/50unattended-upgrades
    

    找到“Unattended-Upgrade::Allowed-Origins”部分并注释掉这些行:

    //"${distro_id}:${distro_codename}-security";
    //"${distro_id}ESM:${distro_codename}";
    

    然后我重新启动了虚拟机,一切都很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-13
      • 1970-01-01
      • 2011-07-08
      • 2020-10-17
      • 1970-01-01
      • 2017-09-15
      • 2019-05-13
      • 1970-01-01
      相关资源
      最近更新 更多