Disk I/O는 웹 서비스 성능에 많은 영향을 미치는 중요 모니터링 지표입니다. Disk I/O가 웹 서비스에 영향을 주는 이유는 디스크의 데이터 처리 속도가 메모리나 CPU에 비해 너무 느리기 때문입니다. 플로피 디스크를 사용한 세대라면 디스크가 얼마나 느린지 상상할 수 없습니다.
플로피 디스크를 삽입하면 한참동안 디스크에서 긁히는 소리가 나오고서야 프로그램이 동작하기 시작했습니다. 동작 원리를 생각하면 하드 디스크도 다르지 않습니다. 플로피 디스크보다는 빨라졌다고는 하지만 물리적인 액세스 암이 움직이면서 헤드를 통해 데이터를 읽고 쓰는 하드 디스크는 여전히 웹 서비스의 성능에 많은 영향을 주는 장치입니다.
이런 이유로 모니터링 분야에서 디스크의 입출력 정보는 주요 관심사항입니다. 그래서 와탭 서버 모니터링에서는 Disk I/O(%), IOPS Read/Write, Disk Bps Read/Write, Queue Length와 같은 디스크의 입출력에 관련된 지표들을 다루고 있습니다.
와탭 서버 모니터링의 Disk I/O(%) 지표는 5초 동안의 디스크 사용률을 보여줍니다. 윈도우 작업 관리자의 Disk Active Time(%) 또는 리눅스 iostat의 %util 지표와 같은 개념입니다.(디테일에서는 조금 다를 수 있지만) Disk I/O(%)가 80%가 넘으면 시스템 성능에 영향을 줄 수 있으며, 와탭 서버 모니터링의 기본 경고 값은 90%입니다. Disk I/O(%)가 100%라면 디스크가 쉬지 않고 일하고 있다는 의미입니다.
IOPS(Input/Output Operations Per Second)는 초당 입력/출력 작업을 나타내는 측정 단위입니다. 작업 KiB 단위로 측정되며, 기본 드라이브 기술에 따라 볼륨 유형이 단일 I/O로 계산하는 최대 데이터 용량이 결정됩니다. 일반적으로 HDD의 IOPS 범위는 55-180이며 SSD의 IOPS 3,000 - 40,000 입니다.
THE SSD REVIEW에 따르면 SSD와 HDD의 IOPS는 입출력 단위에 따라 최소 50배에서 200배까지 차이가 생깁니다. 만일 HDD를 사용하고 있고 평소 Disk I/O(%)가 높다면 SSD로 교체하는 것을 고려해봐야 합니다.
Bps Read/Write는 디스크 처리량을 알려주는 지표입니다. 예를 들어 SQL Server는 64kb 블록으로 기록하지만 Windows Server는 4kb 블록을 사용하고 vSphere 하이퍼 바이저는 1MB 블록 아래로 사용 합니다.
Bps Read/Write는 IOPS와 각각의 처리량을 합산한 실제 데이터 처리량을 의미합니다. Bps Read/Write와 IOPS를 통해 현재 블록의 크기를 대략적으로 산정해 볼 수 있습니다.
Queue Length는 성능 데이터가 수집될 때, 디스크에서 미해결 요청 수입니다. 이는 디스크 I/O 요청을 신속하게 처리할 수 없음을 의미합니다. OS에서 제공되는 지표는 윈도우에서만 나타나지만 와탭에서는 윈도우와 리눅스 모두 제공하고 있습니다.
IBM 자료에 따르면 Queue Length는 1보다 작아야하며 4이상이라면 디스크가 I/O 제약에 놓여있는 상황으로 시스템 업그레이드를 권하고 있습니다. 지속적으로 Queue Length 값이 2를 넘는다면 I/O 병목이라 생각할 수 있습니다.
최근 SSD의 확산으로 디스크의 속도가 빨라지고 있지만 여전히 많은 데이터가 HDD에 쌓이고 있습니다. 특히 최근 빅데이터와 데이터 분석 기술의 발전은 디스크에 더 많은 부담을 주면서 디스크가 서비스의 성능에 영향을 주는 경우들이 많아지고 있습니다. 서비스를 안정적으로 운영하기 위한 기본 절차는 모니터링입니다. 데이터를 많이 다루는 서비스를 운영중이라면 와탭(whatap.io)의 모니터링 서비스를 비롯한 다양한 모니터링 솔루션을 사용해서 디스크 I/O를 확인하시기 바랍니다.
와탭랩스에서 서버 모니터링 개발자 및 프리세일즈 엔지니어를 모집하고 있습니다. 서버 모니터링 개발 경험이 있거나 관심이 있는 분들은 많은 지원 부탁드립니다. 전 분야 모집중이오니 https://www.whatap.io/ko/careers/에서 확인 부탁드립니다.