디스토피아

[리눅스 명령어] Disk I/O & 확인 본문

it

[리눅스 명령어] Disk I/O & 확인

늘그랬듯이 2022. 12. 26. 05:08
반응형

Linux

Disk I/O

 

 


 








 

 

 

 

 

Disk I/O(%) 란?

디스크에서 읽기 또는 쓰기 요청 처리하는 시간의 백분율

Disk I/O는 웹 서비스 성능에 많은 영향을 미치는 중요 모니터링 지표입니다.

 

아름다움을 위한 나의 선택 브랜드체인지 : 루미노베이션

아래 링크를 클릭해보세요!

 

매나테크코리아

매나테크 - TRANSFORM YOUR LIFE

m.mannatech.co.kr

 

 

 

Disk I/O가 웹 서비스에 영향을 주는 이유는

디스크의 데이터 처리 속도가 메모리나 CPU에 비해 너무 느리기 때문입니다.

플로피 디스크를 사용한 세대라면 디스크가 얼마나 느린지 상상할 수 있습니다.

플로피 디스크를 삽입하면 한참동안 디스크에서 긁히는 소리가 나오고서야 프로그램이 동작하기 시작했습니다.

동작 원리를 생각하면 하드 디스크도 다르지 않습니다. 플로피 디스크보다는 빨라졌다고는 하지만 물리적인 액세스 암이 움직이면서 헤드를 통해 데이터를 읽고 쓰는 하드 디스크는 여전히 웹 서비스의 성능에 많은 영향을 주는 장치입니다.

이런 이유로 모니터링 분야에서 디스크의 입출력 정보는 주요 관심사항입니다.

Disk I/O(%) 상태 확인

윈도우 작업관리자





리눅스 iostat - %util

Disk I/O(%) 지표는 5초 동안의 디스크 사용률을 보여줍니다.

윈도우 작업 관리자의 Disk Active Time(%) 또는 리눅스 iostat의 %util 지표와 같은 개념입니다.

Disk I/O(%)가 80%가 넘으면 시스템 성능에 영향을 줄 수 있다.

Disk I/O(%)가 100%라면 디스크가 쉬지 않고 일하고 있다는 의미입니다.






Disk I/O(%) 확인 명령어

1. iostat

2. iotop

3. top

1. iostat

# iostat [옵션] [출력시간&갱신주기(초)] [리포트개수(숫자)]

[option]

-k : kilobytes단위로 보여줍니다.

-m : megabytes단위로 보여줍니다.

-c : CPU상태만 보여줍니다.

-d : 디바이스상태만 보여줍니다.

-x : 파티션 단위로 상태를 보여줍니다.

-V : 버전을 확인합니다.

-n : NFS의 사용량을 나타냅니다.

-h : -n와 동일하지만 가독성이 더 좋게 나타냅니다.

-t : 각 결과값앞에 시간을 나타냅니다.

 

아름다움을 위한 나의 선택 브랜드체인지 : 루미노베이션

아래 링크를 클릭해보세요!

 

매나테크코리아

매나테크 - TRANSFORM YOUR LIFE

m.mannatech.co.kr

 

 

 

[Column]

%user - 유저가 사용중인 프로세스가 사용된 시간(백분율)

%nice - 작업 우선순위가 바뀐 프로세스가 사용된 시간

%system - 시스템이 작동한 시간

%iowait - 입출력(I/O) 대기시간(%idle과 다르며 iowait가 높은경우 메모리 부족이나 비효율적인 I/O부시스템이 구성되어 있음을 의미)

%steal - steal CPU의 작동 시간

%idle - 입출력(I/O)을 기다리지 않으면서 CPU가 놀거나, 기다리면서 소비한 시간(유휴상태)

tps - 디스크 장치에서 초당 처리한 입출력(I/O)의 작업 개수

Blk-read/s - 디스크 장치에서 초당 읽어들인 데이터 블록 단위

Blk_wrtn/s - 디스크 장치에서 초당 쓴 데이터 블록 단위

Blk_read - 디스크 장치에서 읽은 데이터 블록 단위

Blk_wrtn - 디스크 장치에서 쓴 데이터 블록 단위

rrqm/s : 장치에 대기중인 초당 읽기 요청 수

wrqm/s : 장치에 대기중인 초당 쓰기 요청 수

r/s : 초당 읽기 요청 수

w/s : 초당 쓰기 요청 수

rkB/s : 초당 읽기 KB

wkB/s : 초당 쓰기 KB

avgrq-sz : 요청의 평균 크기(섹터 단위)

avgqu-sz : 요청의 평균 대기열 길이

await : I/O 요청의 평균 시간(ms). 이 정보는 대기열 요청 시간과 대기열에 대기하는 시간이 포함

r_await : 서비스 요청을 받은 장치에 대한 읽기 요청의 평균 시간(ms). 대기열 요청 시간과 대기열에 대기하는 시간이 포함

w_await : 장치에 제공되는 쓰기 요청의 평균 시간(ms). 이 정보는 대기열 요청 시간과 대기열에 대기하는 시간이 포함

svctm : 장치에 발급 된 I/O 요청의 평균 시간(ms) (향후 제거되므로 사용하지 말것)

%util : I/O 요청이 장치에 발급된 동안의 CPU %. 이 수치가 100%에 가까울 수록 오버헤드 발생

설치)

sudo apt-get install sysstat

예시1)

CPU 정보를 출력

명령어 : iostat -c [출력시간] [횟수]

[root@web /]# iostat -c 1 3
Linux 2.6.32-642.13.1.el6.x86_64 (web.server) 2017년 03월 16일 _x86_64_ (1 CPU)
 
avg-cpu: %user %nice %system %iowait %steal %idle
0.04 0.00 0.14 0.10 0.00 99.72
 
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.00 0.00 0.00 100.00
 
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 0.98 0.00 0.00 99.02

예시2)

디스크 장치의 입출력 정보 출력

명령어 : iostat -d [출력시간] [횟수]

[root@web /]# iostat -d 1 3
Linux 2.6.32-642.13.1.el6.x86_64 (web.server) 2017년 03월 17일 _x86_64_ (1 CPU)
 
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
scd0 0.00 0.02 0.00 264 0
sda 0.75 21.61 7.80 303458 109580
 
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
scd0 0.00 0.00 0.00 0 0
sda 0.00 0.00 0.00 0 0
 
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
scd0 0.00 0.00 0.00 0 0
sda 0.00 0.00 0.00 0 0



예시3)

지정된 디스크 장치의 정보 출력

명령어 : iostat -p /dev/장치명

[root@web /]# iostat -p /dev/sda
Linux 2.6.32-642.13.1.el6.x86_64 (web.server) 2017년 03월 17일 _x86_64_ (1 CPU)
 
avg-cpu: %user %nice %system %iowait %steal %idle
0.02 0.00 0.11 0.06 0.00 99.80
 
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.61 16.97 6.34 303458 113428
sda1 0.03 0.26 0.00 4636 28
sda2 0.03 0.26 0.00 4698 24
sda3 0.03 0.28 0.01 5066 96
sda4 0.00 0.00 0.00 4 0
sda5 0.03 0.26 0.00 4698 24
sda6 0.32 9.60 5.59 171570 100024
sda7 0.02 0.16 0.00 2904 0
sda8 0.13 6.08 0.74 108642 13232

예시4)

iostat –xd

 

 

아름다움을 위한 나의 선택 브랜드체인지 : 루미노베이션

아래 링크를 클릭해보세요!

 

매나테크코리아

매나테크 - TRANSFORM YOUR LIFE

m.mannatech.co.kr

 

 

 

2. iotop

# iotop [옵션]

[option]

-o : 모든 프로세스 또는 스레드를 표시하는 대신 실제로 I/O를 수행하는 프로세스 또는 스레드만 표시

-b : 배치 모드로 작동. 시간 경과에 따른 I/O 사용량 로깅에 유용

-P : 프로세스만 표시 (일반적으로 iotop은 모든 스레드를 표시)

-a : 누적된 I/O 대역폭 표시. 이 모드는 iotop이 시작된 이후에 수생한 I/O 프로세스의 양을 보여준다

설치)

sudo apt-get install iotop

예시)

 

위 그림을 보면 DISK에 대한 스왑 및 프로세스의 총 I/O 정보를 표시한다.

Iotop에 다양한 매개 변수를 사용하여 더 많은 정보를 볼 수 있다.

Iotop 실행 상태에서 키보드 단축키를 사용하여 표시 방법를 변경할 수도 있다.

Left and right arrow(방향키) : 정렬 열을 변경

r : 정렬 순서를 반대로 표시

: 실제로 I/O를 수행하는 프로세스 또는 스레드만 표시

p : 스레드 대신 프로세스 표시

a : 누적 된 I/O 대역푝 표시

I : 스레드 또는 프로세스의 우선순위 변경

 

아름다움을 위한 나의 선택 브랜드체인지 : 루미노베이션

아래 링크를 클릭해보세요!

 

매나테크코리아

매나테크 - TRANSFORM YOUR LIFE

m.mannatech.co.kr

 

 

 

3. top

CPU 사용량을 확인




top 실행 상태에서 키보드 단축키(f)를 사용

하여 column을 설정할수 있다.





반응형
Comments