커널 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
파일 시스템 ext3
과 ext4
드라이버가 설치되고 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.