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

Game-Lag-Whitepaper › L11 Datenträger

IOPS-Limit und volle Warteschlange IOPS limit / queue saturation

Ursachen-ID dk-iops · Hauptzuständig Server-Infrastruktur (Infrastrukturteam) · Beteiligt Server-Entwicklung (Entwicklungsteam), DB-Infrastruktur (Infrastrukturteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Kommen mehr Anfragen, als der Datenträger pro Sekunde bewältigt, wird die Warteschlange lang und die Latenz explodiert.

Warum Lese- und Schreibanfragen nähern sich der Kapazität des Datenträgers → Folge Warteschlange wird länger (explodiert meist ab 90 % Auslastung) → Auf dem Bildschirm Verzögertes Speichern und Laden, bei synchronen Aufrufen Freeze

Symptome
Input-Lag, Freeze
Faktoren
Latenz, Stillstand
Wer ist betroffen
Ganzer Server
Wann
Bei großem Andrang, Abendliche Stoßzeit
Zuständigkeit
Hauptzuständig Server-Infrastruktur (Infrastrukturteam) · Beteiligt Server-Entwicklung (Entwicklungsteam), DB-Infrastruktur (Infrastrukturteam)
Aufgaben Entwicklungsteam
Anfragen zusammenfassen, häufig gelesene Daten cachen, Zugriffe asynchron gestalten, damit der Game-Thread nicht auf den Datenträger wartet.
Aufgaben Infrastrukturteam
Server/OS: schnellere Datenträger einsetzen, Limits für Disk-Bandbreite und IOPS je Instanztyp prüfen, Alarme auf Disk-Auslastung und Warteschlange einrichten, große Dateikopien in ruhige Zeiten legen. DB-Systeme: auch für DB-Datenträger Alarme auf IOPS- und Durchsatzauslastung einrichten, Disk-Limits der DB-Instanzgröße prüfen.
Größenordnungen
HDD etwa 150 IOPS, SATA-SSD Zehntausende, NVMe Hunderttausende. Der Standard-Cloud-Datenträger (AWS gp3) liefert 3.000 IOPS und 125 MiB pro Sekunde. Daneben gibt es ein eigenes Durchsatzlimit pro Sekunde. Schöpft eine große Dateikopie es aus, stauen sich selbst kleine Schreibvorgänge.
Im Graphen
Plateau am Limit · IOPS, Länge der Disk-Warteschlange
Wo nachsehen
r/s und w/s, rkB/s und wkB/s, aqu-sz sowie r_await und w_await aus iostat -x 1 prüfen. In der Cloud VolumeReadOps, VolumeWriteOps und VolumeQueueLength von EBS sowie die Limit-Prüfungen VolumeIOPSExceededCheck und VolumeThroughputExceededCheck, auf Instanzseite InstanceEBSIOPSExceededCheck und InstanceEBSThroughputExceededCheck prüfen
Spricht dafür
Anfragen pro Sekunde oder Durchsatz verlaufen flach auf dem Limitwert, aqu-sz und await schießen gemeinsam hoch. In der Cloud steht die Exceeded-Metrik auf 1
Spricht dagegen
%util bei 100 %, await aber niedrig: möglicherweise noch Reserven. Bei SSDs und RAID mit paralleler Verarbeitung zeigt %util nicht das Limit an. Limit nicht erreicht, nur await hoch: Latenz des Datenträgers selbst (dk-hdd) oder fsync (dk-fsync)
Prüfmittel
Mit Infrastruktur-Tools prüfbar (ohne Spielcode)
Mehr dazu
In der Cloud hat zusätzlich zum Limit des Datenträgers jede Servergröße (Instanztyp) eigene Limits für Disk-Bandbreite und IOPS. Selbst mit einem teuren Datenträger stößt ein kleiner Server an das Limit der Instanz.

Quellen

  1. Exos X18 Data Sheet Seagate
    4K-Random-Reads auf einer Server-HDD mit 7.200 U/min: 170 IOPS (QD16)
  2. D3-S4520 SSD Solidigm
    Server-SATA-SSD, 4-KB-Random-Read/-Write bis 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
    Basisleistung von gp3: 3.000 IOPS und 125 MiB/s, zwei getrennte Limits, die sich unabhängig voneinander erhöhen lassen
  5. Amazon EBS-optimized instance types AWS
    Jeder Instanztyp hat eigene Basis- und Höchstlimits für EBS-Bandbreite, Durchsatz und IOPS
  6. iostat(1) — Linux manual page sysstat
    -x: r/s und w/s, rkB/s und wkB/s, aqu-sz (früher avgqu-sz), r_await und w_await, %util. Bei RAID und modernen SSDs mit paralleler Verarbeitung zeigt %util nicht das Leistungslimit an
  7. Amazon CloudWatch metrics for Amazon EBS AWS
    VolumeIOPSExceededCheck und VolumeThroughputExceededCheck: 1, wenn das Volume versucht hat, sein IOPS- oder Durchsatzlimit zu überschreiten (Nitro-Instanzen), VolumeQueueLength
  8. CloudWatch metrics that are available for your instances AWS
    InstanceEBSIOPSExceededCheck und InstanceEBSThroughputExceededCheck: 1, wenn die Instanz versucht hat, ihr EBS-IOPS- oder -Durchsatzlimit zu überschreiten

Verwandte Ursachen

Gleiche Schicht: L11 Datenträger

Ursachen aus anderen Schichten mit demselben Symptom (Input-Lag)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen