τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Βιβλιογραφικές αναφορές:
①Χρησιμοποιήστε mtrace για να παρακολουθείτε τις διαρροές μνήμης JVM off-heap
②Μια περίπτωση αντιμετώπισης προβλημάτων υψηλής χρήσης μνήμης Java
Λάβετε τη θέση διαρροής μνήμης (δείτε υλικά αναφοράς ① για λεπτομερείς εντολές)
Χρησιμοποιήστε το jna για να ενεργοποιήσετε το mtrace στον κώδικα Java για την παρακολούθηση της εκχώρησης μνήμης
Χρησιμοποιήστε την εντολή mtrace για να αναλύσετε αρχεία καταγραφής και να λάβετε σημεία κλήσης διαρροής μνήμης.
arthas ελέγξτε τη στοίβα κλήσεων του σημείου κλήσης διαρροής μνήμης (μπορείτε να χρησιμοποιήσετε τη διεύθυνση του σημείου κλήσης απευθείας, δεν απαιτείται όνομα συνάρτησης)
Λάβετε περιεχόμενο διαρροής μνήμης (δείτε υλικά αναφοράς ② για λεπτομερείς εντολές)
Κατά τη δοκιμή μιας υπηρεσίας εκτός σύνδεσης, όταν το QPS είναι υψηλό, η μνήμη που καταλαμβάνεται από την περιοχή nio.direct buffer του μηχανήματος θα αυξηθεί ξαφνικά, προκαλώντας την εμφάνιση OOM στο κοντέινερ.
Χρησιμοποιώντας τις παραπάνω ιδέες αντιμετώπισης προβλημάτων, τελικά προσδιορίσαμε ότι το πλαίσιο RPC μας παρήγαγε μεγάλο όγκο δεδομένων στην περιοχή directbuffer. Πράγματι, όταν το QPS είναι υψηλό, ο αριθμός των νημάτων επιλογής είναι μικρός και η χωρητικότητα κατανάλωσης ανεπαρκής, με αποτέλεσμα να υπάρχει συσσώρευση δεδομένων αιτήματος και απόκρισης στην περιοχή directbuffer.