Linux에서 DISK I/O 사용량 확인

 

·         Version : ubuntu

 

SQL Server Linux 버전 출시로 MS SQL DBA분들이 Linux 대한 관심이 많이 높아졌다. 이번 팁에서는 Linux에서 SQL Server 사용할때 알아두면 좋은 리눅스 팁을 공유한다.

 

DBA 역할 하나는 데이터베이스를 지원하는 스토리지 서브 시스템이 올바르게 작동하는지 확인하는 것이다. 동작을 확인하는 방법에는 DMV(Dynamic Management View) function sys.dm_io_pending_io_requests, sys.dm_io_virtual_file_stats 등이 있다. 하지만 정보로는 충분하지 않을 있다. 실제로 윈도우에서는 성능 이벤트를 사용하여 디스크 성능을 확인할 있으며, 외부 프로그램을 이용하여 성능 정보를 확인할 있다.

 

Linux에서 DISK I/O 사용량을 확인하기 위한 가장 기본 적인 방법은 iostat 명령이며 기본적으로 설치되는 도구이다.

Iostat

 

만약 도구가 설치되어 있지 않다면 sysstat 패키지를 설치하여 사용할 있다.

Sudo apt-get install sysstat

 


 

기본적으로 명령은 장치와 파티션에 대한  CPU I/O 통계에 대한 개의 정보를 표시하지만 -c   –d 옵션을 사용하면 CPU 또는 Disk 정보만 표시하도록 있다.  위의 그림에서 보면 설치된 장치에 대해 초당 전송(tps), 초당 읽기   쓰기(KB), 읽기 쓰기의 (KB) 정보가 나타난다.

iostat 명령을 실행하면 명령이 실행된 순간의 데이터만 나타나지만 반복 시간을 설정하면 지정된 간격(초단위) 계속 정보를 표시할 있다. 아래 명령은 4 간격으로 Disk I/O 정보만 표시되록 한다.

Iostat –d 4

 


 

그림을 보면 4 간격으로 Disk I/O 데이터를 나타내며 읽기/쓰기에 대한 정보는 이전 실행값과 비교한 델타 값이 표시된다. [Ctrl + C] 누를때 까지 지정된 간격으로 데이터를 표시 한다.

 

Iostat 함께 –x 옵션을 사용하면 많은 정보를 보여준다. 가장 유용한 정보는 평균 대기열 길이 avgqu-sz 정보를 보여준다.

Iostat –xd

 


 

·         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% 가까울 수록  오버헤드 발생

 

Iotop 명령은 프로세스 또는 스레드당 I/O 사용량을 나타내며 htop 유틸리티와 비슷한 형식으로 표시 한다.

Iotop

 

만약 해당 명령문이 실행되지 않으면 package 설치 한다.

Sudo apt-get install iotop

 


 

그림을 보면 DISK 대한 스왑 프로세스의 I/O 정보를 표시한다. Iotop 다양한 매개 변수를 사용하여 많은 정보를 있다.

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

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

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

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

 

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

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

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

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

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

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

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

 

2017-06-08 / 강성욱 / http://sqlmvp.kr

 

SQL Linux, Linux disk i/o, 리눅스에서 DISK 사용량 체크, SQL 2017, check disk usage on Linux, iostat, iotop, disk performance






+ Recent posts