Tôi đang chạy tải với Tomcat 6 chạy trên Java 6. Tôi muốn thu thập một đống heapdump của Java trong khi máy chủ Tomcat đang được tải. Tôi thường sử dụng jmap -dump để thu thập heapdumps của tôi.Thu thập đống heapdump của Java dưới tải
Tuy nhiên, khi tôi cố gắng thực hiện điều này khi Tomcat đang xử lý tải trọng cao, tôi thấy rằng bộ sưu tập heapdump không thành công.
Jmap có phải là công cụ tốt nhất để thu thập khối đống từ quá trình đang tải không? Những nguyên nhân nào có thể khiến cho jmap không thu thập được đống rác?
Nếu jmap không phải là công cụ tốt nhất - điều gì tốt hơn?
Hoàn toàn có thể chấp nhận đối với tôi đối với jmap (hoặc một số công cụ khác) để ngăn chặn thế giới trong quá trình Java trong khi vùng lưu trữ đống được thực hiện.
Bạn đã cố gắng đính kèm VisualVM vào máy ảo và tạo một HeapDump bằng cách sử dụng? –
Điều này không lý tưởng đối với tôi vì Tomcat của tôi đang chạy trên một máy chủ Linux từ xa. VisualVM bao gồm hỗ trợ cho các vùng heap từ xa nhưng điều này đòi hỏi một cổng JMX được mở khi JVM được khởi động. – mchr
http://stackoverflow.com/questions/20235802/ways-how-to-get-heap-dump-from-running-tomcat-7 có câu trả lời chi tiết hơn. – Vadzim