지난 시간에는 Disk의 기본 개념에 대해 알아보았습니다.
오늘은 Disk 성능 측정에 가장 많이 사용되는 IOPS에 대해 알아보겠습니다.
(1) IOPS란 무엇인가?
- Input / Output Per Second(초당 입력/출력 횟수)
(2) IOPS 계산 방법
- IOPS = 1000 / (평균 Read Seek Time + 평균 Rotational Latency)
* 한 개의 Sector를 찾기 위해 걸리는 시간의 합을 구한 후 횟수를 계산하기 위해 1초에서 나누면 1초간 총 횟수가 나오게 됩니다.
- 평균 Rotational Latency = 최대 Rotational Latency / 2
- 최대 Rotational Latency = 60000 / RPM
* RPM은 분당 회전 수 이기 때문에 7200RPM의 경우 1바퀴를 도는데 걸리는 시간을 측정하기 위해서는 60000(ms) / 7200으로 계산하면 됩니다.
RPM(Rotational Speed) | 최대 Rotational Latency |
5400 | 11.1 |
7200 | 8.3 |
10000 | 6.0 |
15000 | 4.0 |
- MBps : 초당 전송 되는 Data
* 만약 4K write speed를 가진 20,000 IOPS의 Disk가 있다고 할경우 MBps는 다음과 같이 계산합니다.
MBps = (IOPS * KB Per IO) / 1024
즉 특정 IO발생 시 4K를 쓰는 Test를 하는 경우 초당 20,000의 Read/Write가 가능하기 때문에 1초당 80,000KB의 IO가 발생하게 됩니다. 해당 값은 KB이기 때문에 해당 값을 MB로 변경 하면 MBps로 계산할 수 있습니다.
(3) I/O 종류
- IOPS Test를 하는 경우 두 가지 Type의 I/O를 바탕으로 Test를 진행합니다.
1) Random I/O
- 디스크의 임의의 위치에 Data를 가진 Sector가 존재하기 때문에 임의로 헤드가 이동하여 Data를 읽거나 쓰게 됩니다.
- Random으로 Data Sector가 존재하기 때문에 성능이 감소하게 됩니다.
2) Sequencial I/O
- 인접한 데이터를 읽어 오기 때문에 Random I/O보다 더 많은 양을 처리할 수 있습니다.