Lựa chọn 1:
Execute
jstat -gc PID
(với PID thay thế bởi PID của JVM để giám sát) sẽ trở lại sth. như:
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
103936.0 107008.0 0.0 41618.3 820736.0 401794.3 444928.0 183545.7 181888.0 137262.8 28544.0 20386.6 313 16.024 8 3.706 19.729
Theo this quan tâm là:
MC: Metaspace capacity (kB)
MU: Metaspace utilization (kB)
Vì vậy, trong trường hợp này khoảng 181mb của Metaspace tôi cam kết khi 137mb hiện đang được sử dụng.
Phương án 2:
Nếu bạn có các bản ghi thu gom rác thải cho phép bạn cũng có thể tìm thấy điều này từ đó, ví dụ sau khi ứng dụng gặp sự cố hoặc đã xảy ra sự cố. Tìm kiếm các dòng như
2016-04-06T01:50:04.842+0200: 7.795: [Full GC (Metadata GC Threshold)
[PSYoungGen: 7139K->0K(177152K)]
[ParOldGen: 18396K->22213K(101888K)] 25535K->22213K(279040K),
[Metaspace: 34904K->34904K(1081344K)], 0.1408610 secs]
[Times: user=0.45 sys=0.00, real=0.14 secs]
Điều này tạo nên sự thay đổi kích thước của Metaspace như ngưỡng trước đó.
[Metaspace: 34904K->34904K(1081344K)], 0.1408610 secs]
chứa thông tin liên quan: 34,9mb đã được sử dụng trước cũng như sau GC. Các mục nhập nhật ký mới nhất mà bạn có thể tìm thấy sẽ hiển thị kích thước hiện tại (nghĩa là: sau GC).
Hãy nhớ rằng toàn bộ GC được chạy bất cứ khi nào Metaspace được thay đổi kích thước. Vì vậy, nó là một ý tưởng tốt để cấu hình một giá trị bắt đầu tốt cho điều này khi bạn đã biết rằng giá trị mặc định của ~ 21mb (tùy thuộc vào cấu hình máy chủ) là không đủ.
Xem this để biết thêm thông tin về cách điều chỉnh kích thước Metaspace.
'người đàn ông jstat' đưa ra cách giải thích đúng đắn về "MC : Metaspace capacity (kB) "và" MU: Metacspace use (kB) ", không phải là" commit "và" used ". – moxn