Fallen alle Monster-Respawns, alle Buff-Abläufe und die Belohnungen zur vollen Stunde in denselben Tick, ist dieser eine Tick Dutzende Male so aufwendig wie sonst.
Warum Timer für Respawn, Ablauf, Belohnungen und automatisches Speichern sind auf denselben Zeitpunkt gelegt → Folge In diesem einen Tick fällt Dutzende Male so viel Arbeit an wie sonst → Auf dem Bildschirm Zu festen Zeitpunkten jeweils ein kurzes Stocken
Timer-Zeitpunkte leicht zufällig streuen, Verarbeitung auf mehrere Ticks verteilen.
Im Graphen
Spitzen in festen Abständen · Server-Tick-Zeit
Wo nachsehen
Zeitpunkte der Tick-Spitzen sammeln und die Abstände prüfen (zur vollen Stunde, alle 5 Minuten usw.). Mit der Liste der Timer für Respawn, Buff-Ablauf, Belohnungen und automatisches Speichern abgleichen, die zur selben Zeit laufen
Spricht dafür
Tick schlägt jedes Mal zur selben Uhrzeit oder im selben Abstand aus, und zu diesem Zeitpunkt lösen Spiel-Timer gesammelt aus
Spricht dagegen
Periodisch, aber deckungsgleich mit den Pausen im GC-Log oder den Cron- und Backup-Zeiten des Servers: eher „Stop-the-World-GC-Pause auf dem Server“ oder „Zeitgesteuerte Jobs“
Prüfmittel
Logs oder Metriken aus Spielserver bzw. Client nötig
Quellen
Timeouts, retries, and backoff with jitterAWS Amazon Builders' Library. Allen Timern, periodischen und verzögerten Jobs Jitter hinzufügen, um Last zu verteilen, die sonst auf denselben Zeitpunkt fällt, Fallbeispiel: Anfragen vieler Server im 1-Minuten-Takt ballten sich in den ersten Sekunden jeder Minute