MD RAID 재동기화가 "iotop"에 표시되지 않는 이유는 무엇입니까?

MD RAID 재동기화가 "iotop"에 표시되지 않는 이유는 무엇입니까?

RAID1 어레이를 재동기화하고 있습니다. /proc/mdstat예상 속도로 진행되고 있음을 보여주지만 iotop모든 측면에서 디스크가 유휴 상태임을 보여줍니다. md127_resync커널 스레드가 언급되었지만 IO가 표시되지 않습니다. 이는 커널 스레드에 의해 수행되는 것으로 추측됩니다 man iotop.

이 IO가 에 나타나지 않는다는 것을 어떻게 설명합니까 iotop? 설명에는 다른 유형의 IO도 발생하지 않는다는 내용이 나와 있습니까?

저는 데비안 9를 사용하고 있습니다.

답변1

주의 깊게 읽어보면 TIP이 있습니다man iotop

최소한 CONFIG_TASK_DELAY_ACCT, CONFIG_TASK_IO_ACCOUNTING, CONFIG_TASKSTATS 및 CONFIG_VM_EVENT_COUNTERS 옵션은 Linux 커널 빌드 구성에서 활성화되어야 합니다.

iotop은 샘플링 기간 동안 프로세스/스레드별로 읽고 쓴 I/O 대역폭 열을 표시합니다. 또한 스레드/프로세스가 교체하고 I/O를 기다리는 데 소비한 시간의 비율도 표시합니다. 각 프로세스에 대해 해당 I/O 우선순위(클래스/수준)가 표시됩니다.

또한 인터페이스 상단에는 샘플링 기간 동안 읽고 쓴 총 I/O 대역폭도 표시됩니다. Total DISK READ 및 Total DISK WRITE 값은 한쪽의 프로세스와 커널 스레드, 다른 쪽의 커널 블록 장치 하위 시스템 간의 총 읽기 및 쓰기 대역폭을 나타냅니다. Actual DISK READ 및 Actual DISK WRITE 값은 커널 블록 장치 하위 시스템과 기본 하드웨어(HDD, SSD 등) 간의 실제 디스크 I/O에 해당하는 대역폭을 나타냅니다. 따라서 Linux 커널 내에서 발생하는 데이터 캐싱 및 I/O 작업 재정렬로 인해 총 값과 실제 값이 특정 순간에 동일하지 않을 수 있습니다.

CONFIG_TASK_DELAY_ACCT, CONFIG_TASK_IO_ACCOUNTING, CONFIG_TASKSTATS는 각 작업에 대한 통계로 구성된 것처럼 들립니다 Total. 그리고 CONFIG_VM_EVENT_COUNTERS는 단일 전체 통계입니다 Actual( /proc/vmstat구성 옵션을 찾는 경우). 가상 메모리를 의미하는 VM 부분은 이것이 커널 버퍼링 IO, 즉 페이지 캐시를 통한 IO에 관한 것임을 강력히 암시합니다. 즉, 이러한 통계는 IO가 진행됨에 따라 캡처됩니다.~에서장치 하위 시스템을 차단하는 VM 하위 시스템입니다.

이것이 나에게 의미하는 바는 가상 머신을 우회하는 IO는 포함되지 않을 수 있다는 것 입니다 iotop. O_DIRECT또한 소프트웨어 RAID(및 LVM 등)를 통해 전달된 IO의 이중 계산을 방지하는 방법 iotop과 다른 블록 장치를 계산하는 기능이 없는 이유도 설명합니다.

RAID 재동기화 IO는 페이지 캐시를 통과할 필요가 없습니다. 비동기 IO와 몇 가지 유사점이 있다고 생각되는 커널 API를 사용할 것입니다(Linux는 비동기 IO에 대해 O_DIRECT만 지원합니다). 따라서 페이지 캐시가 제공하는 비동기 쓰기 저장 및 미리 읽기를 사용 read()하거나 사용하지 않고도 write()성능 제한이 발생하지 않습니다 .

관련 정보