$ iostat, $ iotop, $ pidstat : I/O 모니터링

markyang92·2021년 10월 1일
1
post-thumbnail

$ iostat: device별 IO 모니터링

  • Install
    • Ubuntu 20.04에서는 sysstat 패키지를 설치해야함
$ sudo apt install sysstat

  • iostat: device별 I/O 모니터링
$ iostat

DevicetpskB_read/skB_wrtn/skB_readkB_wrtn
디바이스초당 평균
데이터 전송 횟수
KB를 한 블록으로 하는
초당 평균 읽기 횟수
KB를 한 블록으로하는
초당 평균 쓰기 횟수
KB를 한 블록으로 하는
총 읽기 횟수
KB를 한 블록으로 하는
총 쓰기 횟수

  • 2초마다 갱신
$ iostat 2

  • 파티션 정보까지 모두 나타내기
$ iostat -p ALL


$ iotop: process별 IO 모니터링

  • Install
    • Ubuntu 20.04에서는 iotop 패키지를 설치해야함
$ sudo apt install iotop

  • iotop: process별 I/O 모니터링
$ sudo iotop
  • top 처럼, 터미널에 프로세스별 I/O 모니터링
    • PID가 아닌 TID임을 유의
    • PRIO: I/O우선순위, 커널이 얼마나 빠르게 프로세스를 위해 I/O 읽기 쓰기의 일정 관리를 하는지에 영향
      • be/4
        • be: 일정 관리 클래스
        • 4: 우선순위 레벨. CPU 우선순위와 마찬가지로 낮을 수록 우선순위가 높다.

일정 관리 클래스

  • iotop에서 PRIO부분이 I/O의 우선 순위에서 일정 관리 클래스를 살펴본다.
일정 관리 클래스설명
be최선형(best-effort). 커널은 이 클래스를 위해 공정한 IO 일정 관리에 최선을 다한다.
대부분의 프로세스들은 이런 IO 일정 관리 하에 실행한다.
rtreal-time. 커널은 다른 모든 IO 클래스보다 이 rt클래스의 IO 일정 관리를 우선적으로한다.
idle커널은 실행되어야하는 다른 IO가 없을 때만 '이 클래스'를 위한 IO를 실행한다.
idle 클래스에서는 우선 순위 레벨이 없다.

$ ionice: 프로세스에 대한 IO 우선순위 확인/변경


$ pidstat: process별 IO 모니터링

  • vmstat 처럼 시간의 흐름에 따라 모니터링. 소실된 프로세스의 리소스를 볼 수 있게 해준다.

pidstat


$ pidstat -p <pid> <sec>

  • 지정한 pidsec마다 한줄 씩 갱신 후, 종료 시그널을 보내면 Avg 계산
$ pidstat -p 1 3
  • -p 1: pid 1번(systemd)
  • 3: 3초마다 갱신

$ pidstat -r : 프로세스별 메모리


$ pidstat -d : 프로세스별 IO


기타 다른 모니터링 툴

sar

  • sar(System Activity Reporter, 시스템 분석 리포터): vmstat이 갖추고 있는 지속적인 모니터링과 유사한 기능을 갖추고 있다. 또한, 시간의 흐름에 따르는 리소스 활용을 기록하기도 한다.
    sar를 통해 특정 시간대로 돌아가서 시스템이 어떤 작업을 하고 있었는지를 알아 볼 수 있다.
    과거의 시스템 이벤트를 분석하고 싶을 때 아주 편리하다.

acct

  • acct(Process accounting): 프로세스들과 그들이 활용하는 리소스에 대한 정보를 기록

Quotas

  • Quotas: 많은 시스템 리소스를 프로세스별 또는 사용자별로 제한할 수 있다.
    • CPU와 메모리에 관련된 옵션들을 확인하려면 /etc/security/limits.conf를 살펴보자.
    • limits.conf(5) 메뉴얼 페이지를 확인할 수도 있다.
    • PAM 기능이기 때문에 프로세스들이 PAM을 사용하는 경우에 한하여 적용된다.
    • 사용자가 사용할 수 있는 디스크 공간의 양을 제한할 수도 있다.

  • 시스템 세부 조정과 성능에 대해 특별이 관심이 있다면 "System Perfrmance: Enterprise and the Cloud" Berendan Gregg 저 (Prentice Hall, 2013) 읽어 보기
profile
pllpokko@alumni.kaist.ac.kr

0개의 댓글