MonolithWIKI
1.21.11 aktiv
MONOLITH WIKIBuild 19

Adaptive Memory Pressure Engine

Build 19: echte JVM-, GC-, Queue- und Cache-Evidenz mit Hysterese, Erholung und begrenzter Reaktion.

MONO-PERF-0044 · Minecraft 1.21.11

Speicherdruck erkennen, ohne Gameplay zu opfern

Build 19 ersetzt die frühere wiederholte Speichermeldung durch eine zentrale, niederfrequente Zustandsmaschine. Dieselbe unveränderliche Momentaufnahme versorgt Zustandswechsel, seltene Zusammenfassungen, JSON-Diagnosen und /monolith memory. Nicht verfügbare JVM-Werte bleiben ausdrücklich UNAVAILABLE, statt geschätzt zu werden.

Fünf Zustände mit Persistenz und Hysterese

ZustandBedeutungReaktion
NORMALKein bestätigter DruckNormale Monolith-Hintergrundarbeit
ELEVATEDMehrere schwache oder ein tragfähiges SignalBeobachtung und leichte Begrenzung
HIGHAnhaltend deutlicher DruckStärkere Begrenzung optionaler Monolith-Arbeit
CRITICALBestätigte Nähe zur ErschöpfungMinimale optionale Monolith-Parallelität und klare Warnung
RECOVERINGDruck fällt, aber Rückkehr ist noch nicht bestätigtSchrittweise Erholung bis NORMAL

Eine normale Eskalation benötigt standardmäßig drei passende Stichproben. Die Rückkehr verwendet niedrigere Schwellen und sechs gesunde Stichproben. Ein natürliches Post-GC-Signal bleibt für den Kontext verfügbar, seine Steigung beeinflusst Entscheidungen ohne neue Garbage Collection jedoch höchstens 30 Sekunden.

Welche Signale wirklich einfließen

SignalgruppeBeispieleInterpretation
HeapBelegung, Trend, verbleibender SpielraumAktueller Druck, nicht allein ein Leak-Beweis
Natürliches GCPost-GC-Heap, Old Generation, Reclaim, PausenZurückbleibende Belegung und Collector-Verhalten
AllokationBytes pro SekundeChurn; erst zusammen mit Reclaim und Belegung aussagekräftig
Native BereicheDirect, Mapped, Non-HeapNur wenn die JVM belastbare Werte liefert
QueuesMonolith-Hintergrundqueue und Save-QueueRückstau ohne vollständiges Durchlaufen der Queue
CachesNur begrenzte Diagnose- und Runtime-CachesGröße und Wachstum ohne Welt- oder Entity-Referenzen

Lesbarer Laufzeitstatus

text
/monolith memory
  • Zustand, Druckscore, Klassifikation und stabile Grundcodes.
  • Heap, Post-GC-Heap, Old Generation, Allokationsrate, GC-Rate, Pausen und Rückgewinnung.
  • Direct-, Mapped- und Non-Heap-Speicher mit expliziter Verfügbarkeit.
  • Queue- und Cache-Druck, Trendalter, Persistenzzähler und aktuelle sichere Maßnahme.
  • Begründung, warum HIGH oder CRITICAL noch nicht gewählt wurde.

Produktionsstandard und Anpassung

yaml
monolith:
  memory-pressure:
    enabled: true
    sampling-interval-seconds: 5
    warmup-seconds: 120
    escalation-samples: 3
    recovery-samples: 6
    summary-interval-seconds: 900
    diagnostic-snapshots: true
    elevated-score: 0.42
    high-score: 0.68
    critical-score: 0.88
    hysteresis-score: 0.10

Alle Schlüssel sind zusätzlich in der sortierten Konfigurationsreferenz mit Typ, Bereich, Wirkung, Reload-Verhalten und Kompatibilitätsgrenze aufgeführt.

Bewusste Grenzen

  • Kein System.gc(), kein automatischer Heap-Dump und kein Native-Memory-Dump.
  • Keine automatische Behauptung, ein Plugin, eine Welt oder ein Datenträger sei defekt.
  • Keine dauerhaften Referenzen auf Welten, Chunks, Entities, Pakete, Tasks oder Throwables in Trendfenstern.
  • CRITICAL ist ein belastbarer Betriebszustand, aber kein Ersatz für Monitoring, Heap-Analyse und ein geprüftes Rollback.
  • Die 1.21.4–1.21.10-Legacy-JARs enthalten diese Build-19-Engine nicht.