Linux

[리눅스] iostat 명령어 완벽 가이드 사용법(디스크 I/O 성능 확인)

인생아 2024. 10. 18. 16:30
반응형

iostat 명령어는 입출력 통계(IO Statistics)를 제공하는 리눅스 도구입니다. 주로 시스템 성능을 분석하거나 디스크 I/OCPU 사용량을 모니터링하는 데 사용됩니다. iostat 명령어를 통해 디스크 활동 상태와 CPU 성능을 실시간으로 분석할 수 있으며, 이를 통해 시스템 병목 현상이나 성능 저하 문제를 파악하는 데 유용합니다.

iostatsysstat 패키지에 포함된 도구로, 기본적으로 설치되어 있지 않다면 패키지를 설치한 후 사용할 수 있습니다. iostat는 특히 서버 관리시스템 성능 분석에 매우 유용한 명령어로, 디스크 및 CPU 사용 현황을 명확하게 보여주기 때문에 서버 최적화와 같은 작업에 필수적입니다.

iostat 명령어 설치

대부분의 리눅스 배포판에서 iostat는 기본적으로 설치되어 있지 않으므로, 설치가 필요할 수 있습니다.

Debian/Ubuntu 계열에서는 다음과 같이 설치할 수 있습니다.

sudo apt install sysstat

RHEL/CentOS 계열에서는 다음 명령어를 사용합니다.

sudo yum install sysstat

설치가 완료되면 iostat 명령어를 사용할 수 있습니다.

iostat 명령어의 기본 사용법

가장 기본적인 형태의 iostat 명령어는 아래와 같이 입력하면 됩니다.

user@linux:~$ iostat
Linux 5.4.0-74-generic (ubuntu) 	10/16/2024 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.02    0.00    0.57    0.03    0.00   98.38

Device            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              4.13         12.57        24.33    1234567    2345678

avg-cpu 섹션에서는 CPU 사용률을, Device 섹션에서는 각 디스크의 I/O 활동을 나타냅니다. 주요 항목은 다음과 같습니다.

  • %user: 사용자 프로세스가 CPU를 사용한 시간 비율
  • %system: 커널 프로세스가 CPU를 사용한 시간 비율
  • %iowait: CPU가 I/O 작업을 기다리는 데 소비한 시간 비율
  • tps: 초당 전송 횟수 (입출력 작업)
  • kB_read/s: 초당 읽은 데이터 양 (킬로바이트)
  • kB_wrtn/s: 초당 기록된 데이터 양 (킬로바이트)

CPU 사용량만 확인하기

iostat 명령어에 -c 옵션을 사용하면 CPU 사용량에 대한 정보만 확인할 수 있습니다.

user@linux:~$ iostat -c
Linux 5.4.0-74-generic (ubuntu) 	10/16/2024 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.15    0.00    0.65    0.05    0.00   98.15

이 결과는 각 CPU 사용률을 간단하게 확인할 수 있게 도와줍니다.

디스크 I/O만 확인하기

디스크 관련 정보만 보고 싶다면 -d 옵션을 사용할 수 있습니다.

user@linux:~$ iostat -d
Linux 5.4.0-74-generic (ubuntu) 	10/16/2024 	_x86_64_	(4 CPU)

Device            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              4.13         12.57        24.33    1234567    2345678

이 명령어는 디스크의 I/O 상태를 집중적으로 보여줍니다.

반복해서 I/O 상태 모니터링

iostat 명령어는 주기적으로 I/O 상태를 모니터링할 수 있습니다. 예를 들어, 2초 간격으로 5번의 I/O 상태를 모니터링하려면 다음과 같이 입력합니다.

user@linux:~$ iostat 2 5
Linux 5.4.0-74-generic (ubuntu) 	10/16/2024 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.05    0.00    0.60    0.04    0.00   98.31

Device            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              4.05         13.15        22.88    5678901    6789012

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.10    0.00    0.62    0.03    0.00   98.25

Device            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              4.10         13.10        23.05    5678910    6789023

위 명령은 2초마다 시스템의 CPU와 디스크 I/O 상태를 5번 출력합니다.

특정 디스크의 I/O 상태 확인

특정 디스크의 I/O 상태를 확인하려면 디스크 이름을 명시해줍니다.

user@linux:~$ iostat -d sda
Linux 5.4.0-74-generic (ubuntu) 	10/16/2024 	_x86_64_	(4 CPU)

Device            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              4.13         12.57        24.33    1234567    2345678

이 결과는 sda 디스크의 I/O 활동을 보여줍니다.

iostat 명령어 필드 설명

  • tps: 초당 I/O 전송 횟수 (Transaction per second)
  • kB_read/s: 초당 읽은 데이터 양 (킬로바이트)
  • kB_wrtn/s: 초당 기록된 데이터 양 (킬로바이트)
  • kB_read: 읽은 총 데이터 양 (킬로바이트)
  • kB_wrtn: 기록한 총 데이터 양 (킬로바이트)

참고사이트

반응형