디스크 IO를 어떻게 모니터링 할 수 있습니까?


267

데비안 리눅스 서버에서 일반적인 디스크 io 모니터링을하고 싶습니다. 모니터 디스크 io에 대해 알아야 할 도구는 무엇이며 하루 종일 특정 시간에 디스크 성능이 최대치 또는 급상승하는지 확인할 수 있습니까?


답변:


225

디스크 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에서 대기 소요되는 시간입니다. 데비안 패키지를 사용하면 /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

트 렌딩 그래프에서 디스크 사용량을 표시 할 수있는 다른 옵션은 munincacti 입니다.


Munin 또는 Cacti가 내가 찾고있는 것 이상입니다. 포인터 주셔서 감사합니다.
camomileCase

6
% iowait는 커널이 수행 할 다른 작업이 없을 때만 IO를 기다립니다. 100 % CPU 바운드 서버에서는 IO의 양에 관계없이 0이됩니다.
Jürgen Strobel

iostat -x dm-0 | grep 장치; iostat -xd 2 -y dm-0 | grep dm-0
Juan Medina

104

아이오 탑을 보라.

또는 iodump, 당신의 사고 방식에 더 가깝다면.

참고 : 작동 하려면 커널 2.6.20 이상이 필요합니다 .


이것은 Linux뿐 아니라 최신 (또는 패치 된) 커널이 필요합니다.
jordanm

이것들은 지금 무슨 일이 일어나고 있는지 알아내는 데 좋지만, 더 큰 사진 모니터링을 찾고 있습니다.
camomileCase 4

8
@camomileCase-당신은 당신의 질문에 그것을 지정하지 않았습니다 ...
tink

90

나는 좋아한다 dstat. 디스크 당 총계 및 통계를 표시 할 수 있으며 심지어 RAID (md-devices)도 색상을 사용하여 더 나은 개요를 제공 할 수 있습니다.

$ 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 초 이상 디스플레이는 1 초마다 업데이트되지만 60 초마다 한 번 씩만 새 줄이 시작됩니다.

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

대부분의 Linux 배포판에서 사용할 수 있지만 때로는 리포지토리에서 설치해야합니다.


49

그냥에서 컴퓨터에있는 파일 이 요청할 수 있습니다 (최근 커널을 가정) /sys/block/sda/stat또는 /proc/diskstats. 그러나 일부 번역이 필요합니다. 그러나 빠르고 더러운 검사에는 좋습니다.



10
/proc/diskstats에 설명되어 있습니다 kernel.org/doc/Documentation/iostats.txt
Rikard 소더 스트롬

2
이 답변의 가장 큰 장점은 도구를 설치할 필요가 없다는 것입니다. 그냥 있습니다. (잠재적으로 :-)
Ben Aveling

2
예를 들어 에코 "IO 병합 섹터 읽기 틱 쓰기 IO 병합 섹터 쓰기 틱 기내 ioticks timeinqueu"; cat / sys / block / vda / vda1 / stat; sleep 10; 고양이 / sys / block / vda / vda1 / stat
벤 Aveling

35

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

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

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


디스크에 액세스하는 것이 들리지만 누적 출력이 매우 느리게 증가하고 때로는 1 초 안에 전혀 발생하지 않습니다.
Michael

디스크가 들리면 아마도 오래되었거나 느릴 수 있습니다. 최신 HDD는 매우 조용한 경향이 있습니다. 어떤 소리가 나나요? smartctl디스크가 정상인지 확인하는 데 사용 하십시오.
rudolfbyker

8

디스크 Io 모니터링은 다음과 같은 여러 도구로 수행 할 수 있습니다.

  1. 아이소 스타트
  2. 아이소 존
  3. SAR
  4. vmstat

또한 몇 가지 중요한 운영 체제의 개념은 매우 필요한 them..read 이해할 수있는 리눅스 IO 완전한 튜토리얼


2
iozone은 모니터링이 아니라 테스트 용입니다. "Iozone은 파일 시스템 벤치 마크 도구입니다. 벤치 마크는 다양한 파일 작업을 생성하고 측정합니다."
앤드류 Beals

7

부하가 발생하는 빠른 개요를위한 또 다른 훌륭한 도구는 atop

모든 리소스 (CPU, 메모리 / 스왑, 네트워크 및 디스크 I / O)에 대한 개요를 보여 주거나 단일 리소스로 드릴 다운하여 사용량에 따라 프로세스를 정렬 할 수 있습니다.



1

장기적인 성능을보고 싶다면 Nagios를 기반으로하는 강력한 도구 인 Centreon 을 사용 하는 것이 가장 좋습니다 . Centreon을 사용하면 리소스 성능 및 기타 여러 가지 그래프를 그려 모니터링 할 수 있습니다.


다른 것들? 스크린 샷이 있습니까? 답을 넓히십시오.
Konrad Gajewski
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.