HDD 임의 접근 시간·IOPS 계산기 쉽게 이해하기 — 개념과 원리
하드디스크는 헤드가 원하는 트랙으로 이동한 뒤, 원하는 섹터가 회전해 헤드 아래로 올 때까지 기다려야 데이터를 읽습니다. 이 두 기계적 지연이 임의 입출력 성능을 좌우합니다. 이 계산기는 회전 속도와 평균 탐색 시간으로 평균 회전 지연, 평균 접근 시간, 임의 IOPS를 추정합니다. 디스크 어레이 규모를 정하거나 임의 입출력에서 SSD가 훨씬 빠른 이유를 설명할 때 유용합니다.
계산 방법
- 회전 지연(ms) = 30,000 ÷ rpm입니다. 한 바퀴에 60,000 ÷ rpm ms가 걸리고, 원하는 섹터는 평균 반 바퀴 떨어져 있습니다.
- 접근 시간(ms) = 평균 탐색 시간 + 회전 지연입니다.
- 임의 IOPS = 1000 ÷ 접근 시간입니다.
탐색 시간은 제품 사양서나 측정값을 ms로 넣습니다.
원리
임의 요청이 들어오면 헤드는 먼저 플래터 위를 가로질러 해당 트랙으로 이동하며, 무작위 위치에 대한 평균이 사양서의 평균 탐색 시간입니다. 트랙에 도착해도 섹터는 원 위 어디에나 있을 수 있으므로 기대 대기 시간은 반 바퀴입니다. 이런 요청은 한 번에 하나씩만 처리되므로 초당 작업 수는 작업 하나에 걸리는 시간의 역수가 됩니다. 4KiB처럼 작은 블록의 전송 시간은 수 ms의 기계적 지연에 비해 작아서 이 모델에서는 빼고, 컨트롤러 처리 시간도 반영하지 않습니다.
예제 풀이
- 입력값은 7200rpm, 평균 탐색 시간 8.5ms입니다.
- 회전 지연은 30,000 ÷ 7200 = 4.167ms입니다. 한 바퀴는 8.33ms입니다.
- 접근 시간은 8.5 + 4.167 = 12.667ms입니다.
- 임의 IOPS는 1000 ÷ 12.667 = 78.95 IOPS입니다.
| 회전 속도 (rpm) | 회전 지연 (ms) |
|---|---|
| 1,800 | 16.66666667 |
| 3,600 | 8.333333333 |
| 5,400 | 5.555555556 |
| 7,200 | 4.166666667 |
| 9,000 | 3.333333333 |
| 10,800 | 2.777777778 |
| 14,400 | 2.083333333 |
결과 해석
대체로 7200rpm 드라이브는 75~100, 10,000rpm은 120~150, 15,000rpm은 175~210 정도의 임의 IOPS를 냅니다. 반면 보급형 SSD도 수천에서 수십만 IOPS를 냅니다. 순차 전송은 사정이 달라서, 탐색이 거의 없으므로 최신 HDD도 100MB/s를 훌쩍 넘게 읽을 수 있습니다. 이 값은 데이터베이스, 가상 머신, 작은 파일이 많은 작업처럼 임의 입출력이 많은 경우에 쓰십시오.
흔한 실수
- 평균 탐색 시간 대신 끝에서 끝까지 움직이는 최대 탐색 시간을 넣는 경우입니다.
- 평균 회전 지연을 반 바퀴가 아니라 한 바퀴로 계산하는 경우입니다.
- 어레이에 디스크를 추가하면 IOPS가 그대로 늘어난다고 보는 경우입니다. RAID 쓰기 페널티가 임의 쓰기 IOPS를 줄입니다.
자주 묻는 질문
7200rpm의 회전 지연이 왜 4.17ms인가요?
한 바퀴가 60,000 ÷ 7200 = 8.33ms이고, 평균적으로 섹터가 반 바퀴 떨어져 있기 때문입니다.
큐 깊이가 깊으면 IOPS가 오르나요?
여러 요청이 대기하면 드라이브가 순서를 바꿔 탐색 거리를 줄일 수 있어, 이 추정값보다 높아질 수 있습니다.
출처: C. Ruemmler, J. Wilkes, "An Introduction to Disk Drive Modeling", IEEE Computer 27(3), 1994 · J. L. Hennessy, D. A. Patterson, Computer Architecture: A Quantitative Approach, Morgan Kaufmann (저장장치 장)