Linux에서 디스크 IO를 캡처하는 방법에 대한 많은 게시물을 읽었지만 그 중 어느 것도 내 혼란의 원인에 대해 답변하지 않았습니다.
제 경우에는 시스템에서 여러 장치에 대한 데이터를 반환하는 SNMP(diskIOTable)를 사용하여 Linux에서 디스크 IO를 모니터링합니다. 예를 들어, 내 참조 시스템에는 디스크 sda
, 부팅 파티션 sda1
, 루트 파티션 sda2
, LVM 논리 볼륨 dm-0
및 스왑 영역의 LVM 논리 볼륨에 대한 기록이 있습니다 dm-1
.
시스템의 디스크 IO를 계산할 때 이러한 다양한 요소가 어떻게 상호 작용합니까? 처음에는 디스크 통계 sda
에 파티션에 대해 보고된 통계가 포함될 것이라고 가정했지만, 디스크의 유일한 파티션 에 대해서도 보고 sda1
된 통계에 큰 차이가 있음을 발견했습니다 . 이는 다중 파티션이 있는 시스템에서 작업을 시작했을 때 더욱 분명해졌습니다. 예를 들어 누군가는 가정하겠지만 항상 그런 것은 아닌 것 같습니다(일부 시스템에서는 비슷하지만). 디스크에서 보고된 통계는 거의 항상 파티션에서 보고된 통계 또는 디스크의 모든 파티션에서 보고된 통계의 합계를 초과합니다.sda
sda1
sda1
sda1 + sda2 == sda
장비는 어떤 dm-*
영향을 받나요?
파티션과 논리 장치(예: 를 무시하고 실제 디스크의 IO 통계만 합산한다는 가정하에,,dm-*
,md*
loop*
ram*
reads(sda) + reads(sdb) + reads(sdc) == reads(host)
아니면 내가 뭔가를 놓치고 있는 걸까?