한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Game Lag White Paper › L11 Disk

IOPS limit / queue saturation IOPS limit / queue saturation

Cause ID dk-iops · Primary owner Infra team (Server infrastructure) · Also Game team (Server development), Infra team (DB infrastructure)

Open the interactive card with figures and simulations →

When requests exceed what the disk can handle per second, the queue grows and latency explodes.

Why Read and write requests approach the disk’s capacity → Effect The queue grows (usually exploding above 90% utilization) → On screen Slow saves and loading; freezes if the calls are blocking

Symptoms
Input lag, Freeze
Factors
Latency, Stall
Who’s affected
Whole server
When
When crowds gather, Evening peak hours
Owner
Primary owner Infra team (Server infrastructure) · Also Game team (Server development), Infra team (DB infrastructure)
Game team action items
Merge requests, cache frequently read data, make disk access asynchronous so the game thread never waits on the disk.
Infra team action items
Servers/OS: use faster disks, check disk bandwidth and IOPS limits per instance type, alert on disk utilization and queue, run large file copies during quiet hours. DB hosts: alert on IOPS and throughput utilization for DB disks too, check the disk limits of the DB instance size.
Ballpark numbers
HDD about 150 IOPS, SATA SSD tens of thousands, NVMe hundreds of thousands. The default cloud disk (AWS gp3) gets 3,000 IOPS and 125 MiB per second. The per-second throughput limit is separate from IOPS, and when a large file copy fills it, even small writes get stuck behind it.
On the graph
Hits a ceiling · IOPS, disk queue length
Where to look
r/s and w/s, rkB/s and wkB/s, aqu-sz, and r_await and w_await from iostat -x 1. In the cloud, EBS VolumeReadOps, VolumeWriteOps, and VolumeQueueLength, the limit-exceeded checks VolumeIOPSExceededCheck and VolumeThroughputExceededCheck, and on the instance side InstanceEBSIOPSExceededCheck and InstanceEBSThroughputExceededCheck
Confirmed if
Requests per second or throughput flatten at the limit while aqu-sz and await shoot up together. In the cloud, the exceeded-check metric reads 1
Ruled out if
Even at 100% %util, low await means there may still be headroom. On SSDs and RAID that process requests in parallel, %util doesn’t mean the limit has been reached. High await without hitting the limit: latency of the disk itself (dk-hdd) or fsync (dk-fsync)
Check with
Infra tools (no game code needed)
Learn more
In the cloud, each server size (instance type) has its own disk bandwidth and IOPS limits, separate from the disk’s limits. Even with an expensive disk attached, a small server gets capped at the instance limit.

Sources

  1. Exos X18 Data Sheet Seagate
    4K random reads on a 7,200 rpm server HDD: 170 IOPS (QD16)
  2. D3-S4520 SSD Solidigm
    Server SATA SSD 4 KB random read/write up to 92K/48K IOPS
  3. Solidigm™ D7-P5520 and D7-P5620 Product Brief Solidigm
    Server NVMe SSD random read/write 1,000K/200K IOPS
  4. Amazon EBS General Purpose SSD volumes AWS
    gp3 baseline 3,000 IOPS and 125 MiB/s, two separate limits that can be raised independently
  5. Amazon EBS-optimized instance types AWS
    Each instance type has its own baseline and maximum limits for EBS bandwidth, throughput, and IOPS
  6. iostat(1) — Linux manual page sysstat
    -x: r/s and w/s, rkB/s and wkB/s, aqu-sz (formerly avgqu-sz), r_await and w_await, %util. On RAID and modern SSDs that process requests in parallel, %util doesn’t indicate the performance limit
  7. Amazon CloudWatch metrics for Amazon EBS AWS
    VolumeIOPSExceededCheck and VolumeThroughputExceededCheck: 1 if the volume tried to exceed its IOPS or throughput limit (Nitro instances); VolumeQueueLength
  8. CloudWatch metrics that are available for your instances AWS
    InstanceEBSIOPSExceededCheck and InstanceEBSThroughputExceededCheck: 1 if the instance tried to exceed its EBS IOPS or throughput limit

See also

Same layer: L11 Disk

Same symptom (Input lag), other layers

View the interactive card with figures and simulations