본문 바로가기
Linux

리눅스에서 Disk IO 확인하는 명령어 (iostat 명령을 사용하여 지정된 디스크 장치에 대한 디스크 I/O 통계 스크립트)

by hiit 2023. 3. 10.
728x90
반응형

Linux에서 디스크 I/O를 확인하려면 iostat 명령어를 사용할 수 있습니다. 이 명령어는 각 디스크의 현재 디스크 이용률, 디스크 읽기/쓰기 작업 수, 평균 응답 시간을 보여줍니다.

아래는 iostat 명령어의 사용 방법입니다:

터미널 또는 명령 프롬프트를 엽니다.
iostat을 입력하고 엔터를 누릅니다.
시스템의 모든 디스크에 대한 디스크 I/O 통계를 볼 수 있습니다.
더 자세한 정보를 보려면 iostat 명령에 옵션을 추가할 수 있습니다. 아래는 유용한 몇 가지 옵션입니다:

-x: 디스크 이용률, 초당 읽기/쓰기 작업 수 및 평균 응답 시간을 포함한 확장된 디스크 통계를 표시합니다.
-d: CPU 통계가 아닌 디스크 통계만 표시합니다.
-k: 블록당 초당 통계 대신 킬로바이트당 통계를 표시합니다.
-p: 모니터링하려는 디스크의 장치 이름을 지정합니다.


아래는 /dev/sda 디스크에 대한 확장된 디스크 통계를 보여주는 예시 명령어입니다:

iostat -x /dev/sda



다음은 서버에서 지정된 디스크 I/O를 확인하는 데 사용할 수 있는 스크립트입니다.

#!/bin/bash

# Define the disk device to monitor
DISK="/dev/sda"

# Define the time interval between measurements
INTERVAL=1

# Define the number of measurements to take
NUM_MEASUREMENTS=10

# Loop through the measurements
for ((i=1; i<=$NUM_MEASUREMENTS; i++))
do
    # Get the current date and time
    DATE=$(date "+%Y-%m-%d %H:%M:%S")

    # Get the disk I/O statistics
    IO_STATS=$(iostat -x $DISK $INTERVAL 1 | tail -n 2 | head -n 1)

    # Extract the relevant data from the output
    UTILIZATION=$(echo $IO_STATS | awk '{print $14}')
    READS=$(echo $IO_STATS | awk '{print $4}')
    WRITES=$(echo $IO_STATS | awk '{print $5}')

    # Print the results
    echo "$DATE - Disk Utilization: $UTILIZATION%, Reads/s: $READS, Writes/s: $WRITES"

    # Wait for the next measurement
    sleep $INTERVAL
done

이 스크립트는 iostat 명령을 사용하여 지정된 디스크 장치(이 예에서는 /dev/sda)에 대한 디스크 I/O 통계를 정기적으로 가져옵니다. 그런 다음 출력에서 ​​관련 데이터를 추출하여 콘솔에 인쇄합니다.

이 스크립트를 사용하려면 모니터링하려는 서버의 파일(예: disk_io.sh)에 저장하고 chmod +x disk_io.sh 명령으로 실행 가능하게 만드십시오. 그런 다음 ./disk_io.sh 명령으로 스크립트를 실행하여 디스크 I/O 모니터링을 시작합니다.

필요에 따라 DISK, INTERVAL 및 NUM_MEASUREMENTS 변수를 조정할 수 있습니다. 예를 들어 다른 디스크 장치를 모니터링하거나 더 자주 또는 더 오랜 시간 동안 측정을 수행할 수 있습니다.

728x90
반응형

댓글