le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Riferimenti:
①Utilizzare mtrace per tenere traccia delle perdite di memoria off-heap della JVM
②Un caso di risoluzione dei problemi relativo all'utilizzo elevato della memoria Java
Ottenere la posizione della perdita di memoria (vedere i materiali di riferimento ① per i comandi dettagliati)
Utilizzare jna per abilitare mtrace nel codice Java per tenere traccia dell'allocazione della memoria
Utilizzare il comando mtrace per analizzare i file di registro e ottenere punti di chiamata di perdita di memoria.
arthas controlla lo stack di chiamate del punto chiamata con perdita di memoria (è possibile utilizzare direttamente l'indirizzo del punto chiamata, non è richiesto alcun nome di funzione)
Ottieni il contenuto della perdita di memoria (vedi i materiali di riferimento ② per i comandi dettagliati)
Quando si testa un servizio offline, quando il QPS è elevato, la memoria occupata dall'area nio.directbuffer della macchina aumenterà improvvisamente, provocando la comparsa di OOM nel contenitore.
Utilizzando le idee per la risoluzione dei problemi di cui sopra, abbiamo finalmente stabilito che il nostro framework RPC generava una grande quantità di dati nell'area del directbuffer. Infatti, quando il QPS è elevato, il numero di thread di selezione è piccolo e la capacità di consumo è insufficiente, determinando un backlog di dati di richiesta e risposta nell'area del directbuffer.