어쨌든 iostat -m의 출력을 얻고 확장 출력에서 대기 열만 실시간으로 추가할 수 있습니까? 이 질문이 말도 안 되는 소리라는 걸 알지만 파일로 출력하거나 iostat를 두 번 실행하지 않고도 모든 열을 실시간으로 가져올 수 있어야 합니다. 그렇게 하면 잘못된 결과가 나올 수 있기 때문입니다. Centos 6.2 iostat 9.0.4 입니다. 커널 2.6.36.4. 요약하자면 이것이 필요합니다.
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 0.56 0.00 0.00 324 485
그리고 여기에 wait를 추가해야 다음과 같이 됩니다.
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn await
sda 0.56 0.00 0.00 324 485 10.72
저 꿈꾸고 있나요? 내가 이것을 잘못 보고 있는 걸까요? 나만의 iostat를 컴파일해야 합니까?
미리 감사드립니다.
답변1
iostat
원하는 형식을 얻는 방법을 잘 모르겠습니다 . 하지만 이러한 유형의 모니터링에 사용하는 도구는 관련 필드를 표시할 수 있도록 사용자 정의할 수 있습니다. 또한 재생 및 그래프 작성 목적으로 데이터를 생성하는 데에도 탁월합니다.
나는 사용한다모니터링 수집(yum을 통해 CentOS에서 사용 가능)디스크 검사 플래그당신에게 필요한 것을 제공해야합니다 :
collectl -sD --dskfilt sda
샘플 출력(인쇄된 단위와 열을 변경할 수 있음):
collectl -sD --dskfilt sdb
waiting for 1 second sample...
# DISK STATISTICS (/sec)
# <---------reads---------><---------writes---------><--------averages--------> Pct
#Name KBytes Merged IOs Size KBytes Merged IOs Size RWSize QLen Wait SvcTim Util
sdb 0 0 0 0 336 0 52 6 6 0 0 0 1
sdb 16 0 1 16 389 1 52 7 7 0 0 0 3
sdb 0 0 0 0 1236 9 109 11 11 0 0 0 0
sdb 16 0 1 16 676 3 140 5 4 0 1 1 14
sdb 0 0 0 0 64 1 16 4 4 0 2 1 2
답변2
bash에서 래퍼를 생성해 보는 것은 어떨까요?
한 줄짜리 버전은 다음과 같습니다.
iostat 1 2 | grep -w sda | tail -1 | awk {'print $7'}
그러면 iostat가 두 번 실행되고 올바른 wait 값(7번째 열)이 반환됩니다.
전체 CPU iowait를 얻기 위해 awk에 올바른 열을 전달하면 vmstat에서도 동일한 작업을 수행할 수 있습니다. 예를 들어 :
vmstat 1 2 | tail -1 | awk {'print $16'}
iostat와 vmstat는 Linux 배포판마다 다르므로 올바른 열을 선택해야 합니다.
답변3
이는 무닌, 그래파이트 등으로 모니터링할 수 있어야 할 것으로 보입니다.
편집하다: 시스템에 가 있는 경우 watch
실행 사이에 지정된 간격을 두고 주어진(또는 무한 반복) 횟수만큼 자동으로 실행되도록 iostat를 설정할 수 있습니다! awk
당신이 실제로 원하는 분야에서!
답변4
작성자가 실시간 정보를 찾고 있다면 원래 질문을 다시 읽으면 Collectl이 좋은 방법이라는 데 동의합니다. 그게 내가 쓴 이유야. ;)
데이터를 사용하여 수행하려는 특정 작업이 있는 경우 도움을 드릴 수 있지만 더 많은 정보가 필요합니다. 원하는 실시간 상태에 관해서는 원하는 1초 미만 모니터링 간격을 선택할 수 있습니다.
-표시