Bei einem Charakter mit Tausenden Items oder Postnachrichten, ungewöhnlich langen Freundes- oder Blocklisten oder sehr vielen Buffs ist die Datenmenge beim Login, beim Speichern und beim Melden an die Umgebung um ein Vielfaches größer als bei anderen. Unabhängig von der Leitung ist es nur mit diesem Charakter langsam.
Warum Lange gespielter Charakter oder Event-Belohnungen: Tausende Einträge in Inventar und Postfach → Folge Bei jedem Login, Gebietswechsel und Speichern entsprechend viele DB-Lese- und Schreibvorgänge, auch die an die Umgebung zu sendenden Ausrüstungs- und Buff-Daten sind groß → Auf dem Bildschirm Nur dieser Charakter hat lange Ladezeiten beim Betreten und stockt beim Öffnen von Inventar oder Postfach. Wartet der Server im Game-Thread auf das Speichern, stehen auch Spieler in der Umgebung kurz still
Obergrenzen für Inventar und Postfach mit automatischem Aufräumen alter Post, nur benötigte Teile nachladen, nur Änderungen und außerhalb des Game-Threads speichern.
Aufgaben Infrastrukturteam
Im Slow-Query-Log wiederholte langsame Abfragen zum selben Charakter finden und an das Entwicklungsteam weitergeben, Top-Liste der Charaktere mit den meisten Item- und Postzeilen bereitstellen.
Größenordnungen
Ist jedes Item eine Zeile in der DB, liest ein Charakter mit 5.000 Items bei jedem Login 5.000 Zeilen. Das ist das Zigfache eines normalen Charakters.
Im Graphen
Nur einzelne Ausreißer · Login- und Speicherzeit pro Charakter, gelesene DB-Zeilen pro Charakter
Wo nachsehen
Im Slow-Query-Log der DB (MySQL slow query log, PostgreSQL log_min_duration_statement) wiederholte langsame Abfragen und Speichervorgänge mit derselben Charakter-ID suchen und eine Top-Liste der Zeilenzahl pro Charakter in den Item- und Posttabellen erstellen
Spricht dafür
Langsame Queries häufen sich bei wenigen Charakter-IDs, deren Item- und Postzeilen das Zigfache des Durchschnitts betragen, und auch von einem anderen PC und über eine andere Leitung ist es genauso langsam
Spricht dagegen
Auch andere Charaktere desselben Accounts oder andere Spieler sind langsam: DB-Hardware oder Locks. Derselbe Charakter läuft auf einem anderen PC normal: Umgebung des Spielers
Prüfmittel
Mit Infrastruktur-Tools prüfbar (ohne Spielcode)
Mehr dazu
Ist derselbe Charakter auch von einem anderen PC und über eine andere Leitung genauso langsam, während andere Charaktere desselben Accounts normal laufen, stehen die Charakterdaten unter Verdacht. Deshalb gehört der Charaktername unbedingt in jede Meldung.
Quellen
Extraneous Fetching antipatternMicrosoft Azure Werden mehr Daten als nötig abgerufen, steigt die I/O-Last und die Antworten werden langsamer