Câu trả lời:
Sử dụng jps
và jstack
để tìm hiểu thêm về các quy trình Java. jstat
cũng có thể hữu ích cho việc theo dõi thống kê Java.
jvmtop là một công cụ dòng lệnh cung cấp chế độ xem trực tiếp ở một số số liệu, bao gồm cả heap.
JvmTop 0.3 alpha (expect bugs) amd64 8 cpus, Linux 2.6.32-27, load avg 0.12
http://code.google.com/p/jvmtop
PID MAIN-CLASS HPCUR HPMAX NHCUR NHMAX CPU GC VM USERNAME #T DL
3370 rapperSimpleApp 165m 455m 109m 176m 0.12% 0.00% S6U37 web 21
11272 ver.resin.Resin [ERROR: Could not attach to VM]
27338 WatchdogManager 11m 28m 23m 130m 0.00% 0.00% S6U37 web 31
19187 m.jvmtop.JvmTop 20m 3544m 13m 130m 0.93% 0.47% S6U37 web 20
16733 artup.Bootstrap 159m 455m 166m 304m 0.12% 0.00% S6U37 web 46
Hãy thử nó hoạt động trong Ubuntu và redhat:
java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
Cho cửa sổ:
java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize"
Dành cho máy mac
java -XX:+PrintFlagsFinal -version | grep -iE 'heapsize|permsize|threadstacksize'
Đầu ra của tất cả các lệnh này giống với đầu ra bên dưới:
uintx InitialHeapSize := 20655360 {product} uintx MaxHeapSize := 331350016 {product} uintx PermSize = 21757952 {pd product} uintx MaxPermSize = 85983232 {pd product} intx ThreadStackSize = 1024 {pd product}
phiên bản java "1.7.0_05" Java (TM) SE Môi trường thời gian chạy (bản dựng 1.7.0_05-b05) Máy chủ Java 64 bit BitSpot (TM) 64-bit, chế độ hỗn hợp)
Để tìm kích thước tính bằng MB, chia giá trị cho (1024 * 1024)
Để theo dõi việc sử dụng bộ nhớ heap trực tiếp, hãy sử dụng jconsole.
bạn cũng có thể kiểm tra công cụ này https://github.com/TeoGia/jotun
nó là một trình bao bọc của jstat và xuất ra heap và sử dụng RAM ở định dạng json
jhsdb jmap --heap --pid xxxx
đã thực hiện mánh khóe