Ich versuche meine Anwendung hauptsächlich zu optimieren, um die "Verbreitung" der Antwortzeiten zu reduzieren. Der Durchschnitt ist in Ordnung, aber die Bandbreite ist zu groß.Tuning JVM für hohe Zuteilungsrate
Dynatrace zeigte, dass die höheren Reaktionszeiten mit einer längeren Zeit in Suspension verbunden sind. Dies deutet auf GC hin.
Ich habe versucht, einige JVM GC-Werte basierend auf dem Lesen online, zu wenig Erfolg zu ändern.
Basierend auf GC-Logs habe ich die Zuteilungsrate auf etwa 324 MB/s und die Promotion-Rate auf nur 0,85 MB/s. Für mich scheint dies eine sehr hohe Zuteilungsrate zu sein, also habe ich versucht, die Größe der Jungen Generation zu erhöhen.
Der erste Screenshot ist mit den Standardeinstellungen von Java 8, 1024MB XMX.
Der zweite Screenshot setzt NewRatio = 1.
Alle Vorschläge, was als nächstes zu versuchen wäre sehr geschätzt.
Dinge, die ich habe schon versucht: zu G1GC ändern, Einstellung NewRatio = 1, NewRatio = 1 und die Erhöhung Xmx auf 2048 einstellen, Einstellung NewSize = 1600m und Xmx = 2048, MetaspaceSize = 100
Einstellung bearbeiten: Hinzufügen von GC-Protokolle: http://pastebin.com/VhJwSuxv
Hinweis: Diese Protokolle sind von dem 10min-Test mit der Änderung: NewRatio = 1
* "Basierend auf GC Logs" *, posten sie? – the8472
Link zu Pastebin mit GC-Protokollen hinzugefügt. Beachten Sie, dass diese mit der Änderung sind: NewRatio = 1 – Bobby
Die jungen Kollektionen liefern eine ziemlich konsistente 70-80ms Pause. Alte Sammlungen dauern länger, aber sie sind selten und sollten erwartet werden, wenn Sie den Durchsatzkollektor verwenden. Daher sollten Sie wahrscheinlich mehr über die Reaktionsfähigkeitsmassnahmen herausfinden, um zu verifizieren, dass sie tatsächlich GC-bezogen sind. – the8472