데이터베이스 개발자 Tip & 강좌

SQLER의 개발자들이 만들어가는 데이터베이스 사용자 Tip & 강좌 게시판입니다. SQL서버, Oracle, MySQL 등 여러 클라우드/오픈소스 기반 데이터베이스 개발 및 운영 관련 팁과 쿼리 노하우를 이곳에서 가장 먼저 접하실 수 있습니다. 많은 도움 되시길 바랍니다.

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



강성욱 / jevida@naver.com

Microsoft SQL Server MVP

Blog : http://sqlmvp.kr

Facebook : http://facebook.com/sqlmvp




No. Subject Author Date Views
» Linux에서 DISK I/O 사용량 확인 jevida(강성욱) 2017.09.13 3840
2092 Linux에서 CPU 사용량 확인 jevida(강성욱) 2017.09.13 2239
2091 SQL Linux에서 SQL Server 시작, 중지, 활성, 비활성 jevida(강성욱) 2017.09.13 1472
2090 SQL Server DBA 체크리스트 jevida(강성욱) 2017.05.31 7163
2089 SQL Server 데이터베이스 백업이 성공적인지 확인하는 방법 jevida(강성욱) 2017.05.31 3752
2088 트리거가 적용된 메모리 최적화 테이블에서 alter table 실패 jevida(강성욱) 2017.05.31 3281
2087 메모리 최적화 테이블 변수 및 예상 행수 jevida(강성욱) 2017.05.31 2962
2086 백업 파일 복원과 3241 오류 (Microsoft® SQL Server® Backup to Microsoft Azure®Tool 사용) jevida(강성욱) 2017.05.31 3141
2085 In-Memory OLTP를 사용할 때 체크포인트 파일이 너무 많아 지는 이유 jevida(강성욱) 2017.05.31 2691
2084 메모리 최적화 테이블변수와 701 오류 (loop 사용으로 인한 메모리 부족 오류) jevida(강성욱) 2017.05.31 3371
2083 메모리 최적화 테이블에서 해시 인덱스 사용시 버킷 카운트의 중요성 jevida(강성욱) 2017.05.31 3006
2082 인덱스 리빌드시 병렬로 실행계획이 생성되지 않는 이유 jevida(강성욱) 2017.03.13 4970
2081 SQL Server 833오류 (15 Sec Slow IO Detected) jevida(강성욱) 2017.03.13 4401
2080 SQL Server nonpreemptive 모드에서Long Sync IO 오류 jevida(강성욱) 2017.03.13 3130
2079 SQL Server DTC Transaction의 SPID = -2 반환 jevida(강성욱) 2017.03.13 2406
2078 SQL Server Read/Writer 동기화 작동 원리 jevida(강성욱) 2017.03.13 2763
2077 SQL Server가 논리 및 물리 프로세서를 결정하는 방법 jevida(강성욱) 2017.03.13 2900
2076 데이터베이스에서 사용자 삭제 오류 jevida(강성욱) 2017.03.13 2805
2075 SQL Server ODBC Driver 및 Command package Tool 설치 jevida(강성욱) 2017.01.11 4773
2074 SQL Server Install on Linux (Ubuntu – 16.0.4) jevida(강성욱) 2017.01.11 5015





XE Login