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
'SQL Server > SQL on Linux' 카테고리의 다른 글
SQL Linux 기본Configure 명령 (0) | 2017.09.13 |
---|---|
SQL Linux에서 기본 백업 디렉토리 변경 (0) | 2017.09.13 |
Linux에서 CPU 사용량 확인 (0) | 2017.09.13 |
SQL Linux에서 SQL Server 시작, 중지, 활성, 비활성 (0) | 2017.09.13 |
SQL Server ODBC Driver 및 Command package Tool 설치 (0) | 2016.11.23 |