Lvm

NVMe 磁碟顯示 80% 的 io 使用率,分區顯示 0% 的 io 使用率

  • May 30, 2019

我有一個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 可以驗證這一點。

引用自:https://unix.stackexchange.com/questions/517667