เครื่องมือบรรทัดคำสั่งสำหรับการตรวจสอบ Java Heap


14

มีเครื่องมือบรรทัดคำสั่งสำหรับการตรวจสอบการใช้ขนาดฮีพของ Java ใน CentOS หรือไม่?

คำตอบ:


6

ใช้jpsและjstackเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับกระบวนการ Java jstatสามารถเป็นประโยชน์สำหรับการตรวจสอบสถิติของ Java


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

# jmap -heap <JAVA_PID>

มีข้อผิดพลาดในการใช้งาน: "ไม่สามารถเชื่อมต่อกับคอร์ดัมพ์หรือเซิร์ฟเวอร์ดีบักระยะไกลใช้ jhsdb jmap แทน" jhsdb jmap --heap --pid xxxxทำกลอุบาย
Tom

4

jvmtopเป็นเครื่องมือบรรทัดคำสั่งซึ่งให้มุมมองแบบสดๆในหลาย ๆ เมตริกรวมถึงฮีป

ตัวอย่างเอาต์พุตของโหมดภาพรวม 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

ทำไมมีข้อผิดพลาดสำหรับกระบวนการ 11272
akirekadu

@akirekadu มีหลายเหตุผล คนที่พบบ่อยที่สุดคือ JDK ที่เข้ากันไม่ได้ระหว่าง jvmtop และ jvm เป้าหมายหรือสิทธิ์ไม่เพียงพอ / ปฏิเสธ ดูคำถามที่พบบ่อยสำหรับรายละเอียด
MRalwasser

1

คุณอาจต้องการวิเคราะห์การใช้หน่วยความจำ

GCViewอาจช่วยให้คุณเห็นภาพสิ่งที่บันทึกของ GC- แสดง

หากคุณเปิดใช้งาน gc-log แล้วคุณสามารถใช้tail -fบันทึกนั้นได้


1

ลองมันใช้งานได้ใน Ubuntu และ redhat:

java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'

สำหรับ windows:

java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize ThreadStackSize"

สำหรับ mac

java -XX:+PrintFlagsFinal -version | grep -iE 'heapsize|permsize|threadstacksize'

เอาต์พุตของคำสั่งทั้งหมดนี้คล้ายกับเอาต์พุตด้านล่าง:

uintx InitialHeapSize                          := 20655360        {product}
uintx MaxHeapSize                              := 331350016       {product}
uintx PermSize                                  = 21757952        {pd product}
uintx MaxPermSize                               = 85983232        {pd product}
 intx ThreadStackSize                           = 1024            {pd product}

Java เวอร์ชัน "1.7.0_05" Java (TM) SE สภาวะแวดล้อมรันไทม์ (บิลด์ 1.7.0_05-b05) Java HotSpot (TM) เซิร์ฟเวอร์ 64-Bit VM (สร้าง 23.1-b03, โหมดผสม)

เพื่อหาขนาดเป็น MB หารค่าด้วย (1024 * 1024)

สำหรับการตรวจสอบการใช้งานหน่วยความจำฮีปสดให้ใช้ jconsole

ภาพหน้าจอ Jconsole


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.