1. jconsole คืออะไร
Jconsole ได้รับการแนะนำตั้งแต่ Java 5. JConsole เป็นเครื่องวิเคราะห์ประสิทธิภาพ Java ในตัวที่สามารถเรียกใช้จากบรรทัดคำสั่งหรือในเปลือก GUI คุณสามารถใช้ jconsole (หรือระดับสูงกว่า "ใกล้" VisualVM) เพื่อตรวจสอบประสิทธิภาพของแอปพลิเคชัน Java และรหัสติดตามใน Java
2. จะเริ่ม jconsole ได้อย่างไร
1. ถ้าคุณเริ่มต้นจากบรรทัดคำสั่งเพียงเรียกใช้ jconsole บนเส้นทาง
2. หากคุณเริ่มต้นจากเปลือก GUI ให้ค้นหาเส้นทางการติดตั้ง JDK เปิดโฟลเดอร์ BIN และดับเบิลคลิก JConsole
เมื่อเครื่องมือวิเคราะห์ปรากฏขึ้น (ขึ้นอยู่กับเวอร์ชัน Java ที่กำลังทำงานอยู่และจำนวนโปรแกรม Java ที่ทำงานอยู่) กล่องโต้ตอบอาจปรากฏขึ้นเพื่อขอให้ป้อน URL ของกระบวนการเพื่อเชื่อมต่อหรืออาจแสดงกระบวนการ Java ในท้องถิ่นที่แตกต่างกัน (บางครั้งรวมถึงกระบวนการ JConsole เอง) เพื่อเชื่อมต่อ ดังแสดงในรูป:
หากคุณต้องการวิเคราะห์โปรแกรมนั้นดับเบิลคลิกกระบวนการ
3. วิธีการตั้งค่าโปรแกรม Java ที่จะเชื่อมต่อและวิเคราะห์โดย JConsolse เมื่อมันทำงาน
1. โปรแกรมท้องถิ่น (เทียบกับคอมพิวเตอร์ที่เปิดใช้งาน JConsole) คุณสามารถเชื่อมต่อกับการเปิดใช้งานในพื้นที่โดยไม่ต้องตั้งค่าพารามิเตอร์ใด ๆ (Java SE 6 ไม่จำเป็นต้องตั้งค่าที่จุดเริ่มต้นและคุณยังต้องตั้งค่าพารามิเตอร์รันไทม์ก่อน - dcom.sun.management.jmxremote)
2. ไม่มีการเชื่อมต่อการรับรองความถูกต้อง (การตั้งค่าต่อไปนี้ระบุว่า: พอร์ตการเชื่อมต่อคือ 8999 และสามารถเชื่อมต่อได้โดยไม่ต้องรับรองความถูกต้อง)
-dcom.sun.management.jmxremote.port = 8999 /-dcom.sun.management.jmxremote.authenticate=false /-dcom.sun.management.jmxremote.ssl=false
3. หากคำนึงถึงปัจจัยความปลอดภัยจำเป็นต้องมีการตรวจสอบความถูกต้องและจำเป็นต้องมีการเชื่อมต่อที่ปลอดภัยก็สามารถทำได้ การอ้างอิง: http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html#gdenv
4. วิธี JConsole เชื่อมต่อกับโปรแกรม Java ระยะไกล (ตัวอย่าง)
1. เขียนโปรแกรม Java ที่ใช้งานง่าย ๆ ทำงานบนเครื่องบางเครื่องเช่น (192.168.0.181)
การคัดลอกรหัสมีดังนี้:
java -cp -dcom.sun.management.jmxremote.port = 8999 -dcom.sun.managent.jmxremote.authenticate = false -dcom.sun.management.jmxremote.ssl = false jconsoleetest
2. เครื่องอื่นเชื่อมต่อกัน
คุณสามารถใช้คำสั่งโดยตรง:
การคัดลอกรหัสมีดังนี้:
jconsole.exe 192.168.0.181:8999
นอกจากนี้คุณยังสามารถใช้งานการเชื่อมต่อในอินเตอร์เฟส JConsole ที่เปิดอยู่แล้ว -> สร้างการเชื่อมต่อใหม่ -> เลือกกระบวนการระยะไกล -> ป้อน IP โฮสต์ระยะไกลและหมายเลขพอร์ต -> คลิก "การเชื่อมต่อ" ดังแสดงในรูป:
จากนั้นคุณจะป้อนอินเทอร์เฟซการวิเคราะห์:
การวิเคราะห์ประสิทธิภาพ
มาพูดคุยเกี่ยวกับวิธีการวิเคราะห์และวิธีการใช้ป้ายกำกับหกป้ายเหล่านี้
•ภาพรวม: แสดงข้อมูลภาพรวมเกี่ยวกับ Java VM และค่าที่ตรวจสอบ
•หน่วยความจำ: แสดงข้อมูลการใช้หน่วยความจำ
•เธรด: แสดงข้อมูลการใช้เธรด
•คลาส: ข้อมูลการโหลดคลาสแสดง
•*สรุป VM:*แสดงข้อมูล Java VM
• MBEANS: แสดง MBEANS
จากนั้นคุณจะป้อนอินเทอร์เฟซการวิเคราะห์:
ภาพรวม
ภาพรวมนั้นง่ายมากและไม่มีอะไรจะพูด มาดูกันเถอะ แต่ก็คุ้มค่าที่จะกล่าวถึงการคลิกขวาบนภาพสามารถบันทึกข้อมูลลงในไฟล์ CSV คุณสามารถใช้เครื่องมืออื่น ๆ เพื่อวิเคราะห์ข้อมูลนี้ในอนาคต
หน่วยความจำ
สิ่งนี้มีค่ามากขึ้นดูสถานะของหน่วยความจำฮีปหน่วยความจำที่ไม่ใช่กองฮีปการจัดสรรหน่วยความจำโดยรวมและการใช้งานรวมถึงจำนวนและเวลาของการรวบรวมขยะโดย GCs ที่แตกต่างกัน คุณสามารถตรวจสอบการเปลี่ยนแปลงหน่วยความจำด้วยตนเองโดย GC
มันมีประโยชน์มากเมื่อวิเคราะห์ปัญหาหน่วยความจำ Java สำหรับการปรับแต่ง คุณต้องเรียนรู้โมเดลหน่วยความจำ JVM จากนั้นคุณจะพบว่าแต่ละค่าที่นี่มีความหมาย
อัลกอริทึมและพารามิเตอร์ของ GC มีผลกระทบอย่างมีนัยสำคัญต่อประสิทธิภาพ ให้ความสนใจกับจำนวนเวลารวบรวมขยะเวลารวมถึง GC บางส่วนและ GC เต็มรูปแบบปรับ GCs ที่แตกต่างกันที่คุณใช้และพารามิเตอร์ภายใต้แต่ละ GC จากนั้นสังเกตในมุมมองนี้เพื่อให้ได้ประสิทธิภาพที่ดี
นี่คือไดอะแกรมของการแบ่งรุ่นของรุ่น GC Generations ภายใต้ Java Hotspot VM Garbage Collector:
สำหรับ GC โปรดดูที่: http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html
ด้าย
มุมซ้ายล่างแสดงเธรดที่ใช้งานอยู่ทั้งหมด (หากมีเธรดมากเกินไปคุณสามารถป้อนสตริงในแถบตัวกรองด้านล่างเพื่อกรองเธรดที่คุณต้องการสังเกต) การคลิกที่จอแสดงผลจะแสดงชื่อสถานะจำนวนการปิดกั้นและเวลารอคอยและข้อมูลสแต็กของเธรด
แผนภูมิสถิติแสดงจำนวนเธรดสูงสุด (สีแดง) และเธรดที่ใช้งานอยู่ในปัจจุบัน (สีน้ำเงิน)
นอกจากนี้มีปุ่มด้านล่างที่ "ตรวจพบการหยุดชะงัก" ซึ่งบางครั้งก็มีประโยชน์
ใจดี
ไม่มีอะไรจะพูด
สรุป VM
ไม่มีอะไรจะพูดลองดูสถานะหน่วยความจำระบบปฏิบัติการ ...
MBean
มีการดำเนินการพิเศษบางอย่างที่นี่
ปลั๊กอิน
jconsole -pluginpath C: /java/jdk1.6.0_22/demo/management/jtop/jtop.jar
คุณสามารถบอกได้อย่างรวดเร็วว่ามันคืออะไร
ขอแนะนำให้ใช้ JConsole เวอร์ชันที่อัปเกรดเช่น JVISUALVM
เกี่ยวกับการใช้ jvisualvm, -> //www.vevb.com/article/77131.htm
ข้อมูลอ้างอิง: