KVM/LXC 主机上的高 IO 会挂起服务器,但在来宾上不会挂起 (Proxmox/Debian)

KVM/LXC 主机上的高 IO 会挂起服务器,但在来宾上不会挂起 (Proxmox/Debian)

我在过去的几个月里遇到了问题,而且问题逐渐变得更糟,现在我的状态是,如果我尝试在我的可视化主机(Proxmox ve 5.1-41)上执行几乎任何密集的 IO 操作,例如备份甚至 cp/rsync、dd给定传输的速度将下降到 KB/s,服务器将无限期地挂起,给我很多“任务挂起超过 120 秒”等。很长一段时间我认为这是光盘的问题,我运行的是 2x SSD在用于 VM 存储的 ZFS Raid 1 中,但最近我真的开始感到绝望,因为我现在无法在 SSD 本身之外的其他地方进行任何备份(从一个池复制到同一池时的速度还可以)。然后,我尝试了与在 KVM/LXC 内的主机上进行的相同速度测试,结果发现速度没有任何问题,没有减慢一切按预期工作的情况。

这个发现也解释了为什么我以前从未发现过这个问题,因为我一直在测试虚拟机的性能,从来没有想过主机的性能会比客户差。

我已经在 Proxmox 论坛上发布了有关此问题的信息,但我不完全确定这实际上是他们系统的错误,我很想听听你们中的一些人会提出什么测试来找出导致此问题的原因。

我已经测试了所有来宾操作系统关闭并且没有改变。机器在正常使用时有大量可用的免费资源。磁盘和 RAM 上有足够的空间。

CPU是:Intel Xeon E5-2620 v4

内存:64GB

数据磁盘:ZFS RAID 10 中的 2 个 1TB SSD

启动磁盘:ZFS RAID 10 中的 2x satadom 32 GB

编辑:在主机上的高 IO 期间,Proxmox 内的图表上唯一会出现异常的是服务器负载,它将飙升至 50 左右,并且大多数时候所有图表都会因为负载而被切断。实际的 CPU 负载和 RAM 使用率会相当低。

非常感谢您的任何想法!

编辑2:这是从 SSD 传输数据(使用 rsync)期间的统计数据sdd 和 sde(ZFS RAID 1) 测试 HDD (BTRFS RAID 1)sda和sdb但实际负载已开启自卫队和自卫队(和 zd0 - SWAP),它们是系统 SSD (ZFS RAID 1)。 (第二次测量可以看出负载)

iostat -x -d 2
Linux 4.13.13-2-pve (klaas)     01/03/2018      _x86_64_        (16 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.04    2.00     0.17   869.78   850.88     0.01    4.13    5.71    4.10   1.46   0.30
sda               0.00     0.00    0.00    0.00     0.00     0.00    40.94     0.00    2.98    2.98    0.00   1.96   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00    40.94     0.00    3.58    3.58    0.00   2.96   0.00
sdc               0.00     2.00    0.02    0.71     0.26   108.82   297.28     0.02   22.87    7.26   23.33   9.11   0.67
sdd               0.00     0.01   12.79   39.53   794.05   645.26    55.02     0.02    0.29    0.71    0.15   0.19   0.99
sde               0.00     0.00   12.80   39.00   794.16   645.26    55.58     0.02    0.30    0.72    0.17   0.20   1.04
sdf               0.00     0.00    0.88   10.16    10.27   139.85    27.22     0.13   11.66    4.42   12.28   5.96   6.57
sdg               0.00     0.00    0.89   10.39    10.32   139.85    26.63     0.14   12.53    4.38   13.24   6.41   7.23
zd0               0.00     0.00    0.04    0.24     0.16     0.94     8.00     0.02   87.75    5.03  101.71  35.04   0.97
zd16              0.00     0.00    0.33    0.46     2.82     8.71    28.95     0.00    1.17    0.28    1.80   0.11   0.01
zd32              0.00     0.00    0.03    5.96     0.77    88.80    29.88     0.00    0.19    0.31    0.18   0.02   0.01

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    0.50     0.00     2.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.50    0.00    1.00     0.00     6.00    12.00     0.01    6.00    0.00    6.00   6.00   0.60
sdd               0.00     0.00   17.50   16.50    24.00   162.00    10.94     0.01    0.35    0.69    0.00   0.35   1.20
sde               0.00     0.00   16.50   16.50    18.00   162.00    10.91     0.01    0.30    0.61    0.00   0.30   1.00
sdf               0.00     0.50    0.50    2.50     0.00    22.00    14.67     2.70  754.67  792.00  747.20 333.33 100.00
sdg               0.00     0.00    2.50    3.00     8.00    30.00    13.82     0.39   73.45  128.00   28.00  35.64  19.60
zd0               0.00     0.00    0.00    1.50     0.00     6.00     8.00     3.99  728.00    0.00  728.00 666.67 100.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdd               0.00     0.00   20.50    6.00  1566.00   104.00   126.04     0.01    0.30    0.39    0.00   0.23   0.60
sde               0.00     0.00   20.00    6.00  1690.00   104.00   138.00     0.01    0.46    0.40    0.67   0.38   1.00
sdf               0.00     0.50   13.50   44.50    10.00   646.00    22.62     2.93   68.03   78.67   64.81  16.97  98.40
sdg               0.50     0.50   19.00   44.00    40.00   630.00    21.27     2.85   44.41   34.74   48.59  15.24  96.00
zd0               0.00     0.00    0.00   11.00     0.00    44.00     8.00     2.59  375.45    0.00  375.45  91.09 100.20
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    4.00     0.00    32.00    16.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdd               0.00     0.00   61.00  117.00  7028.00  3236.00   115.33     0.04    0.25    0.49    0.12   0.19   3.40
sde               0.00     0.00   40.00   84.00  4680.00  3236.00   127.68     0.07    0.55    1.20    0.24   0.40   5.00
sdf               0.00     0.50    7.00    9.50    78.00   852.00   112.73     3.64  222.18  147.71  277.05  60.61 100.00
sdg               0.00     0.00    7.00   15.50    32.00  1556.00   141.16     2.89  121.60   59.71  149.55  44.44 100.00
zd0               0.00     0.00    0.00   21.00     0.00    84.00     8.00    19.72 2074.95    0.00 2074.95  47.62 100.00
zd16              0.00     0.00    0.00    1.00     0.00     4.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    1.00     0.00     4.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.50    0.00    1.50     0.00     8.00    10.67     0.02   13.33    0.00   13.33  13.33   2.00
sdd               0.00     0.00   10.50    4.00   832.00    50.00   121.66     0.01    0.41    0.57    0.00   0.28   0.40
sde               0.00     0.00    8.50    4.00   576.00    50.00   100.16     0.02    1.28    0.94    2.00   1.12   1.40
sdf               0.00     2.00    5.50   11.50    12.00  1534.00   181.88     2.76  160.59  110.18  184.70  58.82 100.00
sdg               0.00     1.50    6.00   13.00    48.00  1622.00   175.79     2.86  156.42  107.67  178.92  52.63 100.00
zd0               0.00     0.00    4.00   34.50    16.00   138.00     8.00    22.63  692.10  120.00  758.43  25.97 100.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdd               0.00     0.00    5.50   17.00     4.00   378.00    33.96     0.00    0.09    0.36    0.00   0.09   0.20
sde               0.00     0.00    7.50    6.50    42.00    98.00    20.00     0.01    0.71    0.53    0.92   0.57   0.80
sdf               0.00     1.00    7.50   11.00    28.00  1384.00   152.65     3.16  152.65  105.60  184.73  54.05 100.00
sdg               0.00     0.50    4.00    8.00    16.00   976.00   165.33     3.36  208.00  192.50  215.75  83.33 100.00
zd0               0.00     0.00    7.00   17.50    28.00    70.00     8.00    25.68  592.65  231.71  737.03  40.82 100.00
zd16              0.00     0.00    0.00    3.50     0.00    14.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
loop0             0.00     0.00    0.00    0.50     0.00     2.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.50    0.00    1.00     0.00     6.00    12.00     0.01   10.00    0.00   10.00  10.00   1.00
sdd               0.00     0.00    3.00   66.50    14.00  1308.00    38.04     0.01    0.17    1.33    0.12   0.12   0.80
sde               0.00     0.00    2.50   57.00     0.00  1588.00    53.38     0.01    0.24    1.60    0.18   0.17   1.00
sdf               0.00     0.00    1.50    1.00     6.00   128.00   107.20     3.27 1056.80 1004.00 1136.00 400.00 100.00
sdg               0.00     0.00    0.00    0.50     0.00    64.00   256.00     3.62 2176.00    0.00 2176.00 2000.00 100.00
zd0               0.00     0.00    0.00    0.00     0.00     0.00     0.00    25.00    0.00    0.00    0.00   0.00 100.00
zd16              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
zd32              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

除此之外,系统 SSD 的利用率较低。但我不明白为什么它使用根本不应该参与数据传输的驱动器。

编辑3:传输在第二次测量时开始,使用 BTRFS 将数据从 DP1 复制到另一个 HHD,rpool(RAID 1 ZFS SSD)利用率达到 100%,但看起来并不是由于实际带宽所致

 zpool iostat 2
              capacity     operations     bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G     16     80  1.22M  1.31M
rpool       6.69G  23.1G      0     21  17.0K   286K
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G    616    195  76.7M  4.85M
rpool       6.69G  23.1G      9     38   216K  3.87M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G  1.05K    131   133M  1.41M
rpool       6.69G  23.1G      0     29      0  3.03M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0  4.00K      0
rpool       6.69G  23.1G      0     25      0  3.25M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      1      0  8.00K      0
rpool       6.69G  23.1G      0     25  2.00K  3.14M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0  4.00K      0
rpool       6.69G  23.1G      3     26   114K  3.10M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0  2.00K      0
rpool       6.69G  23.1G      0     20      0  2.56M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0  2.00K      0
rpool       6.69G  23.1G      0     15  4.00K  1.94M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0      0      0
rpool       6.69G  23.1G      0     25      0  3.19M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G     21      0   130K      0
rpool       6.69G  23.1G      0     14      0  1.81M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0  8.00K      0
rpool       6.69G  23.1G      0      1  2.00K   256K
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0  2.00K      0
rpool       6.69G  23.1G      0     12      0  1.62M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0      0      0
rpool       6.69G  23.1G      1     18  8.00K  2.37M
----------  -----  -----  -----  -----  -----  -----
DP1          554G   334G      0      0      0      0
rpool       6.69G  23.1G      8     15  84.0K  2.00M

这当然与一些 IO 问题有关,因为即使我停止传输,主机(Proxmox GUI)也会冻结并且在 5-15 分钟内没有响应,并且 cli 中的 df 之类的命令在同一时间段内根本不会响应。计算机上运行的所有虚拟机都按预期工作,没有任何速度减慢。

实际写入系统 SSD 的数据量非常小,以至于已用空间 (21%) 和交换使用量(3.6 GB 中的 360 MB - 交换度设置为 10)几乎不会改变。

另外,我还多次尝试更改光盘调度程序,现在我处于无操作状态。

我注意到当 IO 观看 top 时,z_wr_iss 多次运行更长时间

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
1967 root       1 -19       0      0      0 S   0.3  0.0   5:15.03 z_wr_iss
1969 root       1 -19       0      0      0 S   0.3  0.0   5:14.76 z_wr_iss
1974 root       1 -19       0      0      0 S   0.3  0.0   5:14.56 z_wr_iss
1975 root       1 -19       0      0      0 S   0.3  0.0   5:14.71 z_wr_iss
1981 root       0 -20       0      0      0 S   0.3  0.0   4:02.77 z_wr_int_1
1984 root       0 -20       0      0      0 S   0.3  0.0   4:02.33 z_wr_int_4
1986 root       0 -20       0      0      0 S   0.3  0.0   4:02.29 z_wr_int_6

现在我无法运行 iotop,因为一旦我运行它,系统就会开始冻结,因为它仍然比之前的测试慢。

好吧,很抱歉,这可能是由 @Mark 答案中发布的 ZFS 问题引起的,因为我以前在运行 iotop 时看到过它

3268 be/0 root        0.00 B/s    0.00 B/s  0.00 % 99.99 % [z_null_int]

肯定是有的。

答案1

听起来您似乎遇到了过去 8 个月左右不同的人描述的类似问题。据报道,Proxmox 5.1 附带的 ZFS 版本本质上存在一个错误,在某些情况下会导致高 IO 严重受损。 (搜索 z_null_int 高磁盘 I/O #6171)

当前的两个选项是运行 Proxmox 4.1 (ZFS 0.6) 或在 proxmox 5.1 主机上使用备用文件系统。

答案2

据我了解,所使用的 32Gb SATA Doms 是一个由 1 个镜像 VDEV 组成的独立池。在 RSync、备份或其他操作期间,该池的容量有多大?系统使用了多少交换空间?如果您还没有这样做,请考虑使用一些 ZFS 工具 (zpool iostat),它们可能会提供有关正在发生的情况的更多信息。 (https://docs.oracle.com/cd/E19253-01/819-5461/6n7ht6r01/index.html

相关内容