최근 전화 인터뷰에서 이런 질문을 받았습니다. Linux에서 디스크 성능을 확인하는 데 iostat 명령을 사용할 수 있다는 것을 알고 있습니다. 하지만 이 질문에 어떻게 대답해야 할지 모르겠습니다. 이는 디스크가 가득 찼다는 뜻인가요? 감사해요.
답변1
%util에 얼마나 많은 I/O 로드가 있는지 확인할 수 없습니다. 이는 단순히 스케줄러/드라이버/스토리지에서 하나 이상의 IO가 처리되지 않은 샘플 시간의 비율을 나타냅니다.
따라서 iostat 1(샘플링 속도 1초)의 경우 %util이 75%라는 것은 최소 1개의 io가 미해결 상태이고 총 1초 샘플링 시간 중 750밀리초를 저장해야 함을 의미합니다.
실제 로드 측면에서는 단일 물리적 디스크를 다루지 않는 한 유용한 정보를 나타내지 않습니다. 단일 물리적 디스크(예: 직접 연결된 SATA 디스크)의 경우 %util은 디스크가 io에서 작동하는 시간의 로드 비율을 대략적으로 나타냅니다.
단일 물리적 디스크와 단일 물리적 디스크 헤드의 경우 iostat가 100%에 도달하면 해당 마운트 지점에서 다른 io 작업을 수행할 수 없습니다.
로드 포인트는 IO 크기, 쓰기 대 읽기 비율, 로드의 임의성 또는 순서로 구성됩니다. 로드 경고 제한을 결정하는 것은 사용 중인 스토리지 기술과 애플리케이션에 따라 크게 달라집니다.
언젠가 스토리지 제품의 성능을 테스트해 본 경험이 있습니다. 저는 Linux 시스템 측에서 fio 도구를 사용하고 있습니다.
활용도가 100%에 도달하더라도 디스크에 작업 부하를 더 추가할 수 있습니다.
fio --name=fiotest --filename=/xxx/fiotest --size=16Gb --rw=write --bs=1M --direct=1 --numjobs=8 --ioengine=libaio --iodepth=8 --group_reporting --runtime=60
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sdf 0.00 **2269.67** 0.00 **774805.33** 0.00 **9833.67** 0.00 **81.25** 0.00 **27.00 61.28** 0.00 **341.37 0.44 99.97**
sdd 0.00 **2267.33** 0.00 **774144.00** 0.00 **9835.33** 0.00 **81.27** 0.00 **25.49 57.78** 0.00 **341.43 0.44 99.97**
sde 0.00 **2270.67** 0.00 **775061.33** 0.00 **9833.33** 0.00 **81.24** 0.00 **26.11 59.30** 0.00 **341.34 0.44 99.97**
avg-cpu: %user %nice %system %iowait %steal %idle
Starting 8 processes
Jobs: 8 (f=0): [f(8)][100.0%][w=519MiB/s][w=518 IOPS][eta 00m:00s]
fiotest: (groupid=0, jobs=8): err= 0: pid=10248: Thu Oct 20 03:26:28 2022
write: IOPS=2002, BW=2003MiB/s (2100MB/s)(117GiB/60040msec); 0 zone resets
fio --name=fiotest --filename=/xxx/fiotest --size=16Gb --rw=read --bs=1M --direct=1 --numjobs=8 --ioengine=libaio --iodepth=8 --group_reporting --runtime=60
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sdf **2271.33** 0.00 **775146.67** 0.00 **9842.00** 0.00 **81.25** 0.00 **25.91** 0.00 **58.85 341.27** 0.00 **0.44 99.63**
sdd **2264.67** 0.00 **774464.00** 0.00 **9846.67** 0.00 **81.30** 0.00 **25.02** 0.00 **56.67 341.98** 0.00 **0.44 99.43**
sde **2272.33** 0.00 **775061.33** 0.00 **9841.00** 0.00 **81.24** 0.00 **25.36** 0.00 **57.62 341.09** 0.00 **0.44 99.77**
dm-7 **36341.33** 0.00 **2325845.33** 0.00 0.00 0.00 0.00 0.00 **25.42** 0.00 **923.68 64.00** 0.00 **0.03 100.07**