디스크 IO를 모니터링하는 방법은 무엇입니까?

디스크 IO를 모니터링하는 방법은 무엇입니까?

Debian Linux 서버에서 일반적인 디스크 IO 모니터링을 수행하고 싶습니다. 디스크 성능이 한계에 도달했는지 또는 하루 중 특정 시간에 최고점에 도달했는지 확인하려면 디스크 IO 모니터링에 대해 어떤 도구를 알아야 합니까?

답변1

디스크 I/O 추세에는 몇 가지 옵션이 있습니다. 개인적으로 가장 좋아하는 명령은 sar의 명령 입니다 sysstat. 기본적으로 다음과 같은 출력이 제공됩니다.

09:25:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:35:01 AM     all      0.11      0.00      0.01      0.00      0.00     99.88
09:45:01 AM     all      0.12      0.00      0.01      0.00      0.00     99.86
09:55:01 AM     all      0.09      0.00      0.01      0.00      0.00     99.90
10:05:01 AM     all      0.10      0.00      0.01      0.02      0.01     99.86
Average:        all      0.19      0.00      0.02      0.00      0.01     99.78

%iowaitI/O를 기다리는 데 소요된 시간입니다 . Debian 패키지의 경우 /etc/default/sysstat패키지를 설치한 후 구성 파일을 통해 통계 수집기를 활성화 해야 합니다 .

장치별로 분류된 현재 사용률을 보려면 iostatsysstat 패키지에서도 다음 명령을 사용할 수 있습니다.

$ iostat -x 1
Linux 3.5.2-x86_64-linode26 (linode)    11/08/2012      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.84    0.00    0.08    1.22    0.07   97.80

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
xvda              0.09     1.02    2.58    0.49   112.79    12.11    40.74     0.15   48.56   3.88   1.19
xvdb              1.39     0.43    4.03    1.82    43.33    18.43    10.56     0.66  112.73   1.93   1.13

추세 그래프에 디스크 사용량을 표시하는 다른 옵션은 다음과 같습니다.무닌그리고선인장.

답변2

구경하다 iotop:

Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:       0.00 B/s | Actual DISK WRITE:       0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                             
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init splash
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    4 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
    6 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [mm_percpu_wq]
    7 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    8 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_sched]

아니면 iodump그것이 당신의 사고방식과 더 일치한다면요.

참고: 이를 위해서는 최소한커널 2.6.20일하다.

답변3

좋아요 dstat. 디스크당, 심지어 md 장치(RAID)당 총계와 통계를 표시할 수 있으며 더 나은 개요를 위해 색상을 사용할 수도 있습니다.

$ dstat -tdD total,sda,sdb,sdc,md1 60 
----system---- -dsk/total----dsk/sda-----dsk/sdb-----dsk/sdc-----dsk/md1--
     time     | read  writ: read  writ: read  writ: read  writ: read  writ
08-11 22:08:17|3549k  277k: 144k   28k: 851k   62k: 852k   60k:  25k   82k
08-11 22:09:17|  60k  258k:1775B   15k:  13k   63k:  15k   60k:  68B   74k
08-11 22:10:17| 176k  499k:   0    14k:  41k  122k:  41k  125k: 273B  157k
08-11 22:11:17|  42k  230k:   0    14k:9830B   54k:  14k   51k:   0    70k
08-11 22:11:52|  28k  132k:   0  5032B:5266B   33k:9479B   28k:   0    37k
  • -t타임스탬프용
  • -d디스크 통계용
  • -D보고할 정확한 장치 지정
  • 60평균 60초가 넘습니다. 디스플레이는 매초 업데이트되지만 새 줄은 60초마다 시작됩니다.

  • 이 예에서는 사용되지 않았지만 -c대부분의 경우 디스크 데이터를 기다리는 CPU와 관련된 대기 IO 비율을 보고할 수 있습니다.

대부분의 Linux 배포판에서 작동하지만 저장소에서 설치해야 하는 경우도 있습니다.

답변4

또 다른 옵션은 다음을 사용하는 것입니다.sudo iotop -aoP

-a    Will show accumulated output
-o    Will only output 
-P    Will only show processes instead of threads

이 프로그램은 iotop이 시작된 이후 프로세스가 디스크에 쓰고 읽은 데이터의 양을 알려줍니다.

관련 정보