Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Notitie
De Basic, Standarden Enterprise--plannen zijn op 17 maart 2025 buiten gebruik gesteld. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Dit artikel is van toepassing op:✅ Basic/Standard ✅ Enterprise
In dit artikel worden verschillende hulpprogramma's beschreven die handig zijn voor het oplossen van problemen met Java-geheugen. U kunt deze hulpprogramma's in veel scenario's gebruiken die niet beperkt zijn tot geheugenproblemen, maar dit artikel is alleen gericht op het onderwerp geheugen.
Waarschuwingen en diagnostische gegevens
In de volgende secties worden resourcestatuswaarschuwingen en diagnostische gegevens beschreven die beschikbaar zijn via Azure Portal.
Gezondheid van resources
U kunt gebeurtenissen voor de levenscyclus van apps bewaken en waarschuwingen instellen met azure-activiteitenlogboek en Azure Service Health. Zie Gebeurtenissen voor de levenscyclus van apps bewaken met behulp van azure-activiteitenlogboek en Azure Service Health voor meer informatie.
Resource Health verzendt waarschuwingen over gebeurtenissen voor opnieuw opstarten van apps vanwege problemen met onvoldoende geheugen (OOM). Zie Problemen met opnieuw opstarten van apps die worden veroorzaakt door problemen met onvoldoende geheugen voor meer informatie.
In de volgende schermopname ziet u een waarschuwing voor de resourcestatus van de app die een OOM-probleem aangeeft.
Problemen diagnosticeren en oplossen
Diagnostische gegevens van Azure Spring Apps zijn een interactieve ervaring voor het oplossen van problemen met uw app zonder configuratie. Zie Zelfdiagnose en los problemen op in Azure Spring Apps voor meer informatie.
In Azure Portal vindt u geheugengebruik onder Problemen vaststellen en oplossen, zoals wordt weergegeven in de volgende schermopname.
Geheugengebruik biedt een eenvoudige diagnose voor het geheugengebruik van apps, zoals wordt weergegeven in de volgende schermopname.
Metrische gegevens
In de volgende secties worden metrische gegevens beschreven die betrekking hebben op problemen, waaronder hoog geheugengebruik, heapgeheugen dat te groot is en abnormale garbagecollection (te vaak of niet frequent genoeg). Zie quickstart: Azure Spring Apps-apps bewaken met logboeken, metrische gegevens en tracering voor meer informatie.
Geheugengebruik van app
Het geheugengebruik van de app is een percentage dat gelijk is aan het app-geheugen dat wordt gebruikt door de geheugenlimiet van de app. Deze waarde toont het hele app-geheugen.
jvm.memory.used/toegewezen/max
Voor JVM-geheugen zijn er drie metrische gegevens: jvm.memory.used, jvm.memory.committeden jvm.memory.max, die worden beschreven in de volgende lijst.
'JVM-geheugen' is geen duidelijk gedefinieerd concept.
jvm.memory Hier is de som van heap geheugen en voormalig permGen deel van niet-heap geheugen. JVM-geheugen bevat geen direct geheugen of ander geheugen, zoals de threadstack. Spring Boot Actuator verzamelt deze drie metrische gegevens en bepaalt het bereik van jvm.memory.
jvm.memory.usedis de hoeveelheid gebruikt JVM-geheugen, inclusief gebruikt heapgeheugen en voormalig permGen in niet-heapgeheugen.jvm.memory.usedis een belangrijke weerspiegeling van de verandering van heap-geheugen, omdat het voormalige permGen-onderdeel meestal stabiel is.Als u te groot vindt
jvm.memory.used, kunt u overwegen om een kleinere maximale heap-geheugengrootte in te stellen.jvm.memory.committedis de hoeveelheid geheugen die is vastgelegd voor de JVM die moet worden gebruikt. De grootte vanjvm.memory.committedis in feite de limiet van bruikbaar JVM-geheugen.jvm.memory.maxis de maximale hoeveelheid JVM-geheugen, niet te verwarren met de werkelijke beschikbare hoeveelheid.De waarde van
jvm.memory.maxkan soms verwarrend zijn omdat deze veel hoger kan zijn dan het beschikbare app-geheugen. Ter verduidelijking,jvm.memory.maxis de som van alle maximale grootten van heap geheugen en het voormalige permGen deel van niet-heap geheugen, ongeacht het echte beschikbare geheugen. Als een app bijvoorbeeld is ingesteld met 1 GB geheugen in de Azure Spring Apps-portal, is de standaard heap-geheugengrootte 0,5 GB. Zie de sectie Standaard maximale heapgrootte van Java-geheugenbeheer voor meer informatie.Als de standaard gecomprimeerde klasseruimte 1 GB is, is de waarde
jvm.memory.maxgroter dan 1,5 GB, ongeacht of de grootte van het app-geheugen 1 GB is. Voor meer informatie, zie Java Platform, Standard Edition HotSpot Virtual Machine Garbage Collection Tuning Guide: Other Considerations in de Oracle-documentatie.
jvm.gc.memory.toegekend/gepromoveerd
Deze twee metingen zijn voor het observeren van de Java Garbage Collection (GC). Zie de sectie Java garbagecollection van Java-geheugenbeheer voor meer informatie. De maximale heapgrootte is van invloed op de frequentie van kleine GC en volledige GC. De maximale metaspace en maximale directe geheugengrootte beïnvloeden volledige GC. Als u de frequentie van garbagecollection wilt aanpassen, kunt u overwegen de volgende maximale geheugengrootten te wijzigen.
jvm.gc.memory.allocatedis de hoeveelheid toename in de grootte van de geheugengroep van de jonge generatie na één GC en vóór de volgende. Deze waarde weerspiegelt kleine GC.jvm.gc.memory.promotedis de hoeveelheid toename in de grootte van de geheugengroep van de oude generatie na GC. Deze waarde weerspiegelt de volledige GC.
U vindt deze functie in Azure Portal, zoals wordt weergegeven in de volgende schermopname. U kunt specifieke metrische gegevens kiezen en filters toevoegen voor een specifieke app, implementatie of instantie. U kunt ook splitsen toepassen.
Verdere foutopsporing
Voor verdere foutopsporing kunt u handmatig heapdumps en threaddumps vastleggen en Java Flight Recorder (JFR) gebruiken. Zie Capture heapdump en threaddump handmatig en gebruik Java Flight Recorder in Azure Spring Apps voor meer informatie.
Heap-dumps registreren de status van het Java-heap-geheugen. Threaddumps registreren de stapels van alle live threads. Deze hulpprogramma's zijn beschikbaar via de Azure CLI en op de app-pagina van Azure Portal, zoals wordt weergegeven in de volgende schermopname.
Zie Capture heapdump en threaddump handmatig en gebruik Java Flight Recorder in Azure Spring Apps voor meer informatie. U kunt ook hulpprogramma's van derden zoals Memory Analyzer gebruiken om heapdumps te analyseren.
Configuraties wijzigen om problemen op te lossen
Sommige problemen die u kunt identificeren, zijn container OOM, te groot heapgeheugen en abnormale geheugenopruiming. Als u een van deze problemen identificeert, moet u mogelijk de maximale geheugengrootte configureren in de JVM-opties. Zie de sectie Belangrijke JVM-opties van Java-geheugenbeheer voor meer informatie.
U kunt de JVM-opties wijzigen met behulp van Azure Portal of de Azure CLI.
Navigeer in Azure Portal naar uw app en selecteer Vervolgens Configuratie in de sectie Instellingen van het navigatiemenu. Werk op het tabblad Algemene instellingen het veld JVM-opties bij, zoals wordt weergegeven in de volgende schermopname: