링크 ux iostat 명령 출력 요약 설명

4884 단어 Linux
iostat 는 Linux 시스템 에 내 장 된 도구 로 기계 의 CPU 시간 대 할당 상황 통계 나 하 드 디스크 IO 통 계 를 볼 수 있 습 니 다.강력 한 top 명령 이 존재 하기 때문에 (더 자세 한 CPU/memory 통계 데 이 터 를 출력 합 니 다) 대부분의 경우 iostat 는 하 드 디스크 장치 의 IO 상 태 를 볼 때 기계 IO 압력 이나 병목 을 분석 할 때 특히 유용 합 니 다.
       이 노트 는 주로 man iostat 의 영문 해석 을 참고 하여 iostat 의 전형 적 인 용법 과 출력 데이터 의 의 미 를 설명 하 는 데 목적 을 둔다.
1. iostat 의 기본 출력        셸 터미널 에서 iostat 명령 을 입력 한 후 기본 출력 은 다음 과 같 습 니 다.
Linux 2.6.9xenu_7-0-0-0 (demo-hostname)   06/21/2013

avg-cpu:  %user   %nice    %sys %iowait   %idle
           1.65    0.00    0.62    0.60   97.12

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda1              1.29         1.09        12.38   11546642  130611280
sda2              0.00         0.00         0.00        296          0
sda3             11.79       142.71       395.95 1505879770 4178084600
          
man 에서 알 수 있 듯 이 iostat 가 이 기계 에서 처음으로 실 행 될 경우 출력 통계 의 채집 시간 범 위 는 기계 가 시 작 될 때 부터 이번 iostat 명령 이 실 행 될 때 까지 입 니 다.그렇지 않 으 면 채집 시간 범 위 는 지난번 iostat 실행 시간 에서 이번 실행 시간 까지 입 니 다.       출력 내용 을 통 해 알 수 있 듯 이 iostat 가 먼저 출력 한 첫 번 째 행동 Liux kernel version 과 hostname 및 명령 실행 시간, 뒤의 몇 줄 의 내용 은 2 부분 으로 나 뉜 다. cpu 통계;Device 통계, 다음은 각각 설명 합 니 다.       1) cpu 통계 출력        kernel 2.6.9 의 기계 에서 avg - cpu 출력 내용 은 5 개의 필드 로 구성 되 어 있 으 며, 그 중에서% user/% nice/% sys/% idle 은 쉽게 이해 할 수 있 으 며, 여 기 는 더 이상 군말 하지 않 습 니 다.%iowait 는 기기 가 디스크 IO 요청 에 응답 하여 CPU 의 남 은 시간 을 표시 합 니 다. IO 밀집 형 응용 이 배 치 된 기기 에 대해 서 는 CPU 밀집 형 기기 보다 이 필드 에 대한 통계 값 이 큽 니 다.        kernel 버 전이 2.6.32 인 기계 에서% steal 필드 가 있 을 수 있 습 니 다. 그 의 미 는 다음 과 같 습 니 다.        Show the percentage of time spent in involuntary wait by the virtual CPU or CPUs while the hypervisor was servicing another virtual processor.         2) 장치 통계 출력        이곳 의 장 치 는 보통 하 드 디스크, 즉 하 드 디스크 입 니 다.출력 은 6 개의 필드 를 포함 하고 다음은 각각 설명 합 니 다.        Device: 기계 에 있 는 장치 목록 은 보통 블록 장치 이름 (Liux 에서 블록 장치 와 대응 하 는 것 은 문자 장치 입 니 다. 이들 의 차 이 는 여기 서 참고 할 수 있 습 니 다) 또는 파 티 션 이름 입 니 다. 예 를 들 어 상기 예제 에서 sda 1/sda 2/sda 3;        tps: 초당 장치 에 대한 전송 횟수 (transfers) 입 니 다. 여기 서 '전송' 은 I/O 요청 을 말 합 니 다.주의해 야 할 것 은 논리 적 으로 여러 번 의 요청 이 운영 체제 에 의 해 최적화 되 어 I/O 요청 으로 합 쳐 질 수 있 습 니 다. Liux 시스템 은 디스크 에 접근 하 는 스케줄 링 알고리즘 에 대해 이 전략 을 사용 합 니 다 (관심 이 있 으 면 이 글 에서 키워드 'merging' 을 검색 하여 Liux 의 io scheduler 가 requests merging 에 대한 최적화).        Blk_read/s: 초당 장치 에서 읽 는 데이터 크기 입 니 다. 여기 서 데 이 터 량 은 block 단위 로 설명 합 니 다.kernel 2.4 및 그 후 버 전에 서 block 은 섹 터 (sector) 를 가리 키 기 때문에 1 block = 512 bytes;kernel 2.4 이전 버 전에 서 block 의 크기 가 불확실 합 니 다.        Blk_wrtn/s: 초당 장치 에 기 록 된 데이터 크기, 데이터 크기 는 block 으로 설명 합 니 다.        Blk_read: 시스템 에서 전 기 를 보 낸 이래 장치 에서 읽 은 데이터 총수 (단위: block);        Blk_wrtn: 시스템 에 전 기 를 보 낸 이래 장치 에 기 록 된 데이터 총수 (단위: block).2. iostat - d - k 또는 iostat - c        iostat 에서 매개 변 수 를 추가 하지 않 을 때 avg - cpu 와 device 두 가지 통계 데 이 터 를 기본 출력 합 니 다.만약 우리 가 device 의 통계 데이터 에 만 관심 이 있다 면 - d 로 device 만 출력 하 는 통 계 를 명시 할 수 있 습 니 다.또한, device 의 통계 데이터 기본 단 위 는 block (= 512 Kbytes) 이 며, 출력 된 통계 데이터 값 을 kilobytes 단위 로 - k 로 지정 할 수 있 습 니 다.        예 를 들 어 셸 터미널 에 iostat - d - k 를 입력 한 후 출력 형식 은 다음 과 같 습 니 다.
Linux 2.6.9xenu_7-0-0-0 (demo-hostname)   06/29/2013

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda1              1.29         0.51         6.16    5789577   69260268
sda2              0.00         0.00         0.00        148          0
sda3             11.23        67.20       187.49  755494461 2107939224

        기본 출력 형식 에 비해 이번 출력 내용 은 4 개의 필드 이름과 수치 가 달라 진 것 을 볼 수 있 습 니 다. 필드 이름 은 Blk 에서xxx kBxxx (이 필드 의 단 위 는 block 에서 kB 로 바 뀌 었 음 을 나타 내 는 것) 수치 도 원래 의 512 배 로 바 뀌 었 다.
        avg - cpu 의 통계 데이터 에 만 관심 이 있다 면 iostat - c 를 통 해 명시 적 으로 지정 할 수 있 습 니 다.
3. iostat 기타 용법        1)iostat interval count        iostat 는 기본적으로 한 번 호출 되 어야 통계 결 과 를 출력 합 니 다. 실제 사용 에 서 는 한 번 만 조정 한 다음 에 특정한 시간 간격 으로 n 번 연속 출력 하 는 수요 가 있 습 니 다.이 때 선택 할 수 있 는 interval 과 count 매개 변 수 를 통 해 이 목적 을 달성 할 수 있 습 니 다 (이 두 매개 변 수 는 man 이 볼 수 있 습 니 다).예 를 들 어 iostat 1 100 은 1s 마다 한 번 씩 100 번 출력 한 다 는 뜻 이다.        2)iostat -p device | ALL       Liux 호스트 가 여러 개의 디스크 에 있 고 우 리 는 특정한 장치 의 통계 데이터 에 만 관심 이 있 을 때 iostat - p sda 1 [sda 2] [sdan] 을 통 해 지정 한 장치 만 출력 하 는 통계 데 이 터 를 명시 할 수 있 습 니 다.        iostat - p ALL 은 출력 시스템 에서 정의 해 야 할 모든 블록 장치 나 파 티 션 의 통계 데 이 터 를 표시 합 니 다. 사용 되 지 않 은 장 치 를 포함 합 니 다.이 때 출력 내용 에 ram0 과 같은 장치 이름 이 나타 날 수 있 습 니 다. ramdisk 를 표시 합 니 다. 알 고 싶 은 학생 은 여 기 를 볼 수 있 습 니 다.https://wiki.archlinux.org/index.php/Ramdisk.        주: ALL 인 자 는 kernel 2.5 및 이후 버 전에 서 만 유효 합 니 다.        위 에 열거 한 몇 가지 용법 을 제외 하고 각종 매개 변 수 는 조합 하여 사용 할 수 있 으 며 편폭 에 한 하여 여 기 는 더 이상 전개 되 지 않 습 니 다.알 고 싶다 면 자신의 기계 에서 시험 해 보면 학습 효과 가 더욱 좋다.
[참고 자료] 1. man iostat 2. wikipedia - 장치 파일  3. Kernel Korner - I/O Schedulers  4. wikipedia - Disk sector 
5. Ramdisk
 
=============== EOF ==============

좋은 웹페이지 즐겨찾기