NVMe 디스크는 80% io 사용률을 표시하고 파티션은 0% io 사용률을 표시합니다.

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

모니터링 결과에 따르면 지속적으로 80% 이상의 io 활용률을 iostat보이는 반면, 개별 파티션의 io 활용률은 0%이며 완전히 사용 가능합니다(250,000 iops, 초당 1GB 읽기/쓰기).nvme0n1nvme1n1

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 경고를 트리거하는 모니터링을 제외하고 모든 것이 제대로 작동하는 것 같습니다.

답변1

잘못된 출력의 원인 은 iostatRHEL/CentOS 버전 7.7에서 해결될 커널 버그와 관련된 것으로 보입니다. 스케줄러가 설정된 장치는 영향을 받으며 이는 NVME 드라이브의 기본값입니다. %utilsvctmkernel-3.10.0-1036.el7none

참고로Red Hat 솔루션(로그인 필요) 오류에 대해 설명합니다.
내부에CentOS 버그 보고누군가 위에서 언급한 커널/배포판 버전으로 위의 문제가 해결될 것이라고 썼습니다.

스케줄러를 변경하면 새 커널을 사용할 수 있을 때까지 문제가 해결됩니다. 이는 실제 성능이 아닌 측정항목에만 영향을 미치는 것으로 보이므로 새로운 커널이 나올 때까지 이러한 측정항목을 무시하는 것도 또 다른 가능성입니다.
NVME 드라이버가 없어 이를 확인할 수 없습니다. 아마도 @michal kralik이 이를 확인할 수 있을 것입니다.

답변2

Linux 커널은 각 논리 파티션으로 전달된 IO를 IO가 실제로 수행되는 물리적 장치로 다시 매핑합니다.

관련 정보