Lvm
NVMe 磁碟顯示 80% 的 io 使用率,分區顯示 0% 的 io 使用率
我有一個
3.10.0-957.12.1.el7.x86_64
帶有 2 個 NVMe 磁碟的 CentOS 7 伺服器(核心),設置如下:# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme0n1 259:0 0 477G 0 disk ├─nvme0n1p1 259:2 0 511M 0 part /boot/efi ├─nvme0n1p2 259:4 0 19.5G 0 part │ └─md2 9:2 0 19.5G 0 raid1 / ├─nvme0n1p3 259:7 0 511M 0 part [SWAP] └─nvme0n1p4 259:9 0 456.4G 0 part └─data-data 253:0 0 912.8G 0 lvm /data nvme1n1 259:1 0 477G 0 disk ├─nvme1n1p1 259:3 0 511M 0 part ├─nvme1n1p2 259:5 0 19.5G 0 part │ └─md2 9:2 0 19.5G 0 raid1 / ├─nvme1n1p3 259:6 0 511M 0 part [SWAP] └─nvme1n1p4 259:8 0 456.4G 0 part └─data-data 253:0 0 912.8G 0 lvm /data
我們的監控並持續
iostat
顯示80% 以上的 io 使用率,而各個分區的 io 使用率為 0% 並且完全可用(250k iops,每秒 1GB 讀/寫)。nvme0n1``nvme1n1
avg-cpu: %user %nice %system %iowait %steal %idle 7.14 0.00 3.51 0.00 0.00 89.36 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util nvme1n1 0.00 0.00 0.00 50.50 0.00 222.00 8.79 0.73 0.02 0.00 0.02 14.48 73.10 nvme1n1p1 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 nvme1n1p2 0.00 0.00 0.00 49.50 0.00 218.00 8.81 0.00 0.02 0.00 0.02 0.01 0.05 nvme1n1p3 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 nvme1n1p4 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 nvme0n1 0.00 0.00 0.00 49.50 0.00 218.00 8.81 0.73 0.02 0.00 0.02 14.77 73.10 nvme0n1p1 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 nvme0n1p2 0.00 0.00 0.00 49.50 0.00 218.00 8.81 0.00 0.02 0.00 0.02 0.01 0.05 nvme0n1p3 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 nvme0n1p4 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 md2 0.00 0.00 0.00 48.50 0.00 214.00 8.82 0.00 0.00 0.00 0.00 0.00 0.00 dm-0 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
任何想法可能是這種行為的根本原因?
除了監控觸發高 io 警報外,一切似乎都執行良好。
糟糕
iostat
輸出的來源似乎與核心錯誤有關,該錯誤將%util
在RHEL/CentOS 版本 7.7 中解決。將調度程序設置為的設備會受到影響,這是 NVME 驅動器的預設設置。svctm``kernel-3.10.0-1036.el7``none
作為參考,有一個描述該錯誤的Redhat 解決方案(需要登錄)。
在CentOS 錯誤報告中,有人寫道該問題將通過上述核心/發布版本得到解決。
更改調度程序應該可以解決問題,直到新核心可用。由於它似乎只影響指標而不是實際性能,另一種可能性是在新核心之前忽略指標。
由於缺少 NVME 驅動器,我無法驗證這一點,也許 @michal kralik 可以驗證這一點。