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 論壇上發布了這個問題,但我不完全確定這實際上是他們系統的錯誤,我很想听聽你們中的一些人會提出什麼測試來找出導致這種情況的原因。
我已經測試了所有來賓作業系統都關閉並且 notginh 改變了。機器有大量正常使用的免費資源。磁碟和 RAM 上有足夠的空間。
CPU是:Intel Xeon E5-2620 v4
記憶體:64 GB
數據磁碟:ZFS RAID 10 中的 2 個 1TB SSD
引導磁碟:ZFS RAID 10 中的 2x satadom 32 GB
編輯:在主機上的高 IO 期間,Proxmox 內的圖表上唯一會出現異常的是伺服器負載,它將飆升至 50 左右,並且大多數情況下,所有圖表都會因為負載而被切斷。實際的 CPU 負載和記憶體使用率將非常低。
非常感謝您的任何想法!
編輯 2:這是從 SSD 傳輸數據期間的統計數據(使用 rsync),帶有數據sdd 和 sde(ZFS RAID 1)以測試 HDD(BTRFS RAID 1)sda 和 sdb,但實際負載在sdf 和 sdg(和 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:傳輸從第二次測量開始,數據從 DP1 複製到另一個具有 BTRFS、rpool(RAID 1 ZFS SSD)的 HHD 被使用到 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 觀看頂部時,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]
肯定是有的。
聽起來好像您在過去 8 個月左右的時間裡遇到了各種各樣的人描述的類似問題。據報導,Proxmox 5.1 附帶的 ZFS 版本本質上存在一個錯誤,該錯誤在某些情況下會導致嚴重的高 IO。(搜尋 z_null_int 高磁碟 I/O #6171)
目前的兩個選項是執行 Proxmox 4.1 (ZFS 0.6) 或在 proxmox 5.1 主機上使用備用文件系統。
關於我所了解的 32Gb SATA Doms 是一個由 1 個鏡像 VDEV 組成的獨立池。在您的 RSync、備份或其他操作期間,這個池有多滿?系統使用了多少 SWAP?如果您還沒有這樣做,請考慮使用一些 ZFS 工具 (zpool iostat),它們可能會為正在發生的事情提供額外的資訊。(https://docs.oracle.com/cd/E19253-01/819-5461/6n7ht6r01/index.html)