avgrq-sz가 작은 경우 디스크 %util이 계속 100%에 도달합니다.

avgrq-sz가 작은 경우 디스크 %util이 계속 100%에 도달합니다.

커널 4.9.86이 설치된 시스템에서 디스크에서 이상한 동작이 발견되었습니다(HDD가 5400rpm으로 회전함).%도구꽤 오랜 시간 동안(약 5분 정도) 지속적으로 100%에 도달합니다.평균 RQ이 경우 크기는 8K입니다.평균 곡률그리고기다리다또한 매우 높기 때문에 많은 프로세스가 D 상태로 전환됩니다(jdb2 스레드 포함). 나도 눈치챘다KB 더티이번에는 높이가 높아져(이 경우에는 658MB, 그렇지 않으면 일반적으로 몇 KB) 디스크 포화 상태에 도달합니까?

SAR Memory Usage:======================================
Linux 4.9.86     01/07/19        _x86_64_        (32 CPU)
11:29:20    kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
11:29:21     80270488  52009236     39.32    354368  17373312  15789156      7.92  10257860  15388656    658488
Average:     80270488  52009236     39.32    354368  17373312  15789156      7.92  10257860  15388656    658488

SAR IO Usage:======================================
Linux 4.9.86     01/07/19        _x86_64_        (32 CPU)

11:29:22          tps      rtps      wtps   bread/s   bwrtn/s
11:29:23       351.00      0.00    351.00      0.00   2808.00
Average:       351.00      0.00    351.00      0.00   2808.00

SAR Device IO activity:======================================
Linux 4.9.86      01/07/19        _x86_64_        (32 CPU)

11:29:23          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
11:29:24        loop5      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:29:24          sda    285.00      0.00   2280.00      8.00    143.51    510.94      3.51    100.00
11:29:24        vault      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util

Average:        loop5      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:          sda    285.00      0.00   2280.00      8.00    143.51    510.94      3.51    100.00
Average:        vault      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

SAR Queue and Load avg:======================================
Linux 4.9.86      01/07/19        _x86_64_        (32 CPU)

11:29:25      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
11:29:26            0      1043      3.39      2.30      2.15         2
Average:            0      1043      3.39      2.30      2.15         2

파일 시스템 ext3ext4드라이버가 설치되고 data=ordered,barrier=0로깅 설정이 활성화됩니다.

공격대 구성:

  모델: SAS2008 펌웨어 버전: 9.00.00.00 RAID 수준: RAID1  

답변1

이는 프로세스가 비순차적(임의) 소규모 쓰기를 많이 보내는 경우 예상할 수 있는 것과 유사합니다. 평균 요청 크기는 상대적으로 작습니다(8은 8×512바이트 섹터 = 4K이므로 일반 쓰기의 최소값임). 더티 버퍼를 더 많이 갖는 것도 일관됩니다. 즉, 쓰기가 커널로 전달되고 커널이 이를 디스크에 쓰고 있음을 의미합니다. 디스크의 경우 285tps는 꽤 좋은 성능입니다.

어떤 프로그램이 디스크에 쓰고 있는지 조사하고 비정상적인 동작을 보이는지 확인해야 합니다. 또는 쓰기를 더 잘 확장하도록 프로그램을 구성할 수 있는 경우(예를 들어 데이터베이스인 경우 더티 페이지 쓰기 저장 속도를 구성할 수 있는 경우가 많습니다).

ext3은 어떤 용도로도 권장되지 않습니다. ext4는 보수적인 대안입니다(그러나 ext4를 사용하면 barrier=0분명히 그것에 대해 신경 쓰지 않습니다). XFS는 또 다른 좋은 선택입니다(그리고 여전히 매우 안정적입니다). 하지만 그것이 정말로 도움이 될지는 의문이다. 그러나 SSD는 확실히 제공합니다멀리더 높은 IOPS.

관련 정보