Công cụ dòng lệnh để theo dõi Java Heap


14

Có công cụ dòng lệnh nào để theo dõi việc sử dụng kích thước heap của Java trong CentOS không?

Câu trả lời:


6

Sử dụng jpsjstackđể tìm hiểu thêm về các quy trình Java. jstatcũng có thể hữu ích cho việc theo dõi thống kê Java.


6
cd /opt/www/java/jdk/bin/

# jmap -heap <JAVA_PID>

đã có lỗi khi sử dụng nó: "Không thể kết nối với kết xuất lõi hoặc máy chủ gỡ lỗi từ xa. Thay vào đó, hãy sử dụng jhsdb jmap." jhsdb jmap --heap --pid xxxxđã thực hiện mánh khóe
Tom

4

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.

Ví dụ đầu ra của chế độ tổng quan VM:

 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

Tại sao có lỗi cho quá trình 11272?
akirekadu

@akirekadu Có nhiều lý do. Những cái phổ biến nhất là các JDK không tương thích giữa jvmtop và jvm đích hoặc các quyền không đủ / bị từ chối. Xem FAQ để biết chi tiết.
MRalwasser

1

Bạn có thể muốn phân tích việc sử dụng bộ nhớ.

GCView có thể giúp bạn hình dung những gì bản ghi nhật ký GC hiển thị.

Nếu bạn đã kích hoạt nhật ký gc, bạn chỉ có thể sử dụng tail -ftrên nhật ký đó.


1

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.

Ảnh chụp màn hình Jconsole


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.