일반적으로 sysstat 패키지가 제공하는 iostat은 CPU와 블록 장치 활동을 보고합니다. 반복 표본을 애플리케이션 지연과 함께 사용하십시오. 처리량이나 사용률만으로 저장 장치가 사용자에게 보이는 문제의 원인임을 확정할 수 없습니다.
프로세스 활용 · 레슨 5
I/O 모니터링
iostat 표본으로 CPU 및 블록 장치 활동을 조사하는 방법을 알아봅니다.
유용한 표본 수집하기
1초 간격으로 확장 장치 통계를 실행합니다.
$ iostat -xz 1
일반적인 구현에서 첫 보고서는 부팅 이후의 평균을 포함하고 이후 보고서는 각 구간을 다룹니다. -x 옵션은 확장 필드를 추가하고 -z는 비활성 장치를 숨깁니다. 정상 구간과 문제 구간을 포착하도록 여러 구간을 관찰하십시오.
첫 번째 iostat 보고서는 일반적으로 무엇을 나타냅니까?
CPU 필드 읽기
CPU 섹션에는 일반적으로 사용자(%user), 시스템(%system), 유휴(%idle), 입출력 대기(%iowait) 및 가상 머신 스틸(%steal) 시간이 포함됩니다. 입출력 대기는 처리되지 않은 입출력 요청이 있는 동안의 CPU 유휴 시간이며 디스크가 바쁜 시간의 백분율이 아닙니다.
%iowait가 설명하는 것은 무엇입니까?
장치 필드 읽기
필드 이름은 sysstat 버전에 따라 다르지만 유용한 개념은 다음과 같습니다.
- 초당 읽기 및 쓰기 작업이나 데이터는 작업 부하 속도를 표시
await는 대기열 및 서비스 시간을 포함한 평균 요청 지연을 보고- 평균 대기열 크기 필드는 기다리거나 처리 중인 요청을 표시
%util은 경과 시간 중 장치에서 입출력이 진행 중이었던 백분율을 보고
단순한 직렬 장치에서 높은 %util은 포화를 나타낼 수 있지만 병렬 저장 장치, 배열 또는 가상 장치의 성능 용량으로 직접 변환되지는 않습니다. 지연을 장치 설계, 작업 부하 패턴 및 서비스 목표와 비교하십시오.
평균 입출력 요청 지연과 가장 직접적으로 관련된 필드는 무엇입니까?
증거 연결하기
결론을 내리기 전에 장치 이름을 마운트 및 기반 장치에 매핑합니다.
$ lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINTS
$ findmnt
그런 다음 iostat 구간을 애플리케이션 응답 시간, 데이터베이스 또는 파일 시스템 지표 및 프로세스 수준 입출력과 연결합니다. 장치 매퍼, RAID, 컨테이너 및 네트워크 기반 저장 장치는 고유 도구가 필요한 계층을 추가할 수 있습니다.
장치에서 높은 %util을 본 뒤 무엇을 해야 합니까?
레슨 완료
I/O 모니터링 완료
이제 iostat을 입출력 조사의 증거로 사용할 수 있습니다.
확장 통계 구간을 여러 번 수집합니다.
CPU 입출력 대기와 장치 바쁜 시간을 구분합니다.
지연, 대기열, 처리량 및 사용률을 함께 해석합니다.
장치를 작업 부하에 매핑하고 애플리케이션 영향을 검증합니다.