IOPS란? SSD·HDD가 1초에 몇 번 읽고 쓸 수 있는지 쉽게 이해하기
IOPS는 Storage가 1초 동안 처리할 수 있는 읽기·쓰기 Operation 수입니다. Throughput·Latency와의 차이, Random 4K, Queue Depth, Cloud Limit까지 초보 기준으로 정리합니다.
Cloud Disk 상품에 3,000 / 10,000 / 100,000 IOPS가 보이면 「Disk가 빠르다」로만 읽기 쉽습니다. 큰 방향은 맞지만, IOPS(Input/Output Operations Per Second)는 Storage가 1초 동안 몇 번의 읽기·쓰기 Operation을 처리할 수 있는지 나타내는 처리 횟수입니다. 편의점 계산대가 손님(Operation)을 초당 몇 명 처리하느냐와 같습니다. Read IOPS와 Write IOPS는 Workload·장치에 따라 다를 수 있습니다. I/O Wait(iowait)를 볼 때 함께 떠올리는 Capacity 지표입니다.
IOPS = 초당 몇 번? Throughput = 초당 몇 MB·GB? Latency = 한 번 처리에 얼마나?
IOPS · Throughput · Latency
같은 1,000 IOPS라도 I/O Size가 4KB면 약 4MB/s, 1MB면 약 1GB/s로 Throughput이 달라집니다. Block Size·Random/Sequential·Read/Write 비율을 Benchmark와 함께 봅니다. 4K Random Read는 여기저기 4KB를 읽는 패턴, Sequential은 연속 Block입니다. HDD는 Head 이동 때문에 Random이 특히 느릴 수 있고, SSD·NVMe는 Flash 병렬로 Random IOPS가 훨씬 높을 수 있습니다. Database Index Lookup처럼 작은 Random I/O가 많으면 IOPS가, 10GB 영상·Backup처럼 큰 순차 이동이면 Throughput이 더 중요할 수 있습니다. 「많이 처리」와 「빨리 처리」는 다릅니다 — IOPS가 높아도 Queue가 길면 Latency가 클 수 있고, IOPS는 낮아도 큰 I/O 몇 개가 Throughput Ceiling에 닿을 수 있습니다.
Saturation · Queue Depth · Cloud Limit
Storage Capacity가 10,000 IOPS인데 요구가 15,000이면 매초 Queue가 쌓입니다 — Waiting이 Latency에 더해집니다(Queueing Theory). Queue Depth는 동시에 줄을 선 I/O 수입니다. QD1과 QD32에서 Benchmark IOPS가 크게 다를 수 있어 광고 최대치만 믿으면 안 됩니다. Cloud는 Provisioned IOPS·Throughput Limit·Burst Credit 소진 후 급락이 있을 수 있습니다. Latency가 중요한 웹·API는 최대 IOPS를 꽉 채우기보다 Headroom을 남기는 편이 안전합니다. Limit에 거의 안 닿는데 Latency만 높으면 Network Storage·Flush·큰 I/O 등 다른 원인을 봅니다.
작은 4KB → IOPS Ceiling 먼저 큰 Sequential → Throughput Ceiling 먼저 IOPS × I/O Size ≈ Throughput (대략)
Cache · Query · Write · 완화
OS Page Cache·DB Buffer Pool Hit면 Physical Disk IOPS를 줄입니다. Miss면 Disk Read가 필요합니다(Cache Miss). Full Table Scan·N+1 Query·Index 부재는 IOPS를 폭증시킬 수 있어 Storage만 키우기보다 Query·Index·Cache가 더 효과적일 때가 많습니다. 로그·작은 Upload를 한 줄/파일씩 즉시 Write하면 Operation이 폭주합니다 — Batch·Buffering이 도움이 되지만 Durability Trade-off가 있습니다(로그). fsync·WAL Flush Latency는 「최대 IOPS」와 별개로 Commit을 막을 수 있습니다. Write Amplification·Index 다수는 Write 비용을 키웁니다. DB와 Backup을 같은 Disk에 몰면 Contention이 납니다. CDN·Object Storage·Read Replica·Shard로 부하를 나누고, 동시 I/O는 Admission Control로 제한합니다. SSD가 여유가 있어도 CPU가 100%면 Bottleneck은 다른 축입니다. 평균 IOPS만 보지 말고 Peak·Latency 동시 Spike를 모니터링합니다. SEO 전용 지표는 아니지만 Timeout·5xx가 늘면 UX에 간접 영향(503).
초보 FAQ
IOPS가 높으면 무조건 빠른가?
아닙니다. Block Size·Random/Sequential·Latency·Throughput을 함께 봅니다.
IOPS와 MB/s 차이?
IOPS는 초당 작업 횟수, MB/s는 초당 데이터량입니다.
Limit에 도달하면?
Queue에서 기다리며 Latency가 증가할 수 있습니다.
iowait와 관계는?
IOPS 포화로 I/O가 지연되면 iowait가 커질 수 있지만 항상 비례하지는 않습니다.
정리
IOPS = Storage가 1초 동안 처리할 수 있는 읽기·쓰기 Operation 수입니다. 「초당 몇 번?」이고, Throughput은 「초당 몇 MB·GB?」, Latency는 「한 번이 얼마나?」입니다. 작은 Random I/O가 많은 Database에서는 IOPS가 중요할 수 있지만, 대용량 순차 이동에서는 초당 얼마나 많은 데이터량을 읽고 쓸 수 있는가가 더 중요해질 수 있습니다. IOPS가 높아도 최대 전송량이 500MB/s라면 대용량 파일은 그 한계에 막힐 수 있습니다. 이처럼 Storage가 일정 시간 동안 실제로 얼마나 많은 데이터량을 읽거나 쓸 수 있는지를 나타내는 지표를 Storage Throughput(스토리지 처리량)이라고 합니다.