2009-04-08 27 views
5

Tôi đang gặp sự cố khi sử dụng Netbeans 6.5 profiler để cấu hình việc sử dụng bộ nhớ của một ứng dụng web java, từ xa.Sử dụng Netbeans 6.5 profiler để cấu hình một ứng dụng web từ xa?

Tôi đã làm theo các bước trong tutorial và có thể tùy chỉnh cá thể Tomcat để bắt đầu với tác nhân định hình. Tôi cũng có thể đính kèm hồ sơ Netbeans vào máy chủ đang chạy: trong một vài giây, profiler hiển thị các đồ thị có sử dụng bộ nhớ của máy chủ.

Tuy nhiên, tôi không thể chạy ứng dụng web được triển khai của mình. Sau một vài giây, máy chủ được tắt một cách duyên dáng như thể nó đơn giản đã đạt đến đáy của phương thức chính của nó (hầu như không phải là hành vi mong đợi của máy chủ web).

Trong những giây này, máy chủ không chịu trách nhiệm và tôi không thể kết nối với ứng dụng web trong đó, chúng không được triển khai đơn giản.

Tôi không muốn nhập ứng dụng của mình vào dự án Netbeans mới chỉ để lược tả nó. Có thể cấu hình một ứng dụng từ xa mà không cần truy cập vào nguồn của nó, phải không? Sau khi tất cả, trong một vài giây, máy chủ đang chạy và được lược tả.

Tôi muốn cấu hình một ứng dụng web trong Netbeans 6.5. Tôi đã quên gì?

+0

bạn đã đọc các bản ghi máy chủ? – Sergey

+0

Bạn có thể cấu hình/giám sát tomcat mà không triển khai ứng dụng web của bạn, chỉ cần chạy "trống" tomcat? –

+0

Điều tương tự đang xảy ra với tôi. Có lẽ sẽ hữu ích nếu chúng tôi đặt một số phiên bản của những gì chúng tôi đang chạy để mọi người có thể tìm kiếm câu hỏi? Tôi đã cố gắng triển khai vào Tomcat 5.5.x, với nó chạy trên cả Java5 và Java6. Phiên bản Netbeans của tôi là 6,5 Mặt khác, nhập dự án của tôi vào Netbeans và sau đó chạy profiler hoạt động hoàn hảo. @sergey Thật không may là không có bất kỳ đầu ra nào trong bất kỳ nhật ký Tomcat nào – jklp

Trả lời

0

Đang định cấu hình toàn bộ máy chủ web hoặc bạn có sử dụng bộ lọc lược tả để chỉ cấu hình gói của bạn không? Giảm tương tác giữa profiler và bản thân máy chủ ứng dụng có thể giải quyết nó.

1

Bạn cũng có thể sử dụng công cụ VisualVM. Thực hiện theo các bước được đề cập dưới đây.

1) Chạy jstatd (quá trình quỷ jstat) (Chạy trên máy từ xa của bạn nơi ứng dụng đang chạy) jstatd -p 1098 -J-Djava.security.policy = tools.policy (chỉ định cổng chưa sử dụng) nếu tools.policy tệp không được chỉ định tạo nó như sau.

tools.policy 
grant codebase "file:${java.home}/../lib/tools.jar" { 

permission java.security.AllPermission; };

2) Cũng chỉ định các thuộc tính sau trước khi bạn khởi động JVM.

#JMX property 
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote=true" 
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote.port=10992" 
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote.authenticate=false" 
JVM_ARGS="${JVM_ARGS} -Dcom.sun.management.jmxremote.ssl=false" 

3) Khởi động VM trực quan trên máy cục bộ. a. Trong tab từ xa, thêm nút từ xa. b. Đợi vài phút, bạn sẽ thấy tất cả các ứng dụng lõi sẽ được nhìn thấy trong tab từ xa. c. Nhấp vào nút từ xa, sau đó chọn Thêm kết nối JMX chỉ định nút: cổng (cổng được đề cập ở trên tại điểm 2.) d. Đợi vài giây, bạn sẽ thấy kết nối JMX dưới nút từ xa.

4) Sau vài giây, bạn sẽ thấy tab mới xuất hiện dưới nút từ xa. Kích đúp vào remote_node: 10992 bạn sẽ thấy bảng profile ở bên tay phải. Bạn có thể xem chi tiết bộ nhớ, cpu, luồng, v.v ..

0

Kiểm tra phiên bản jvm của bạn. Phiên bản được sử dụng bởi netbeans nên được giống như trong tomcat. Sử dụng các cổng mặc định. Nếu bạn đã thay đổi bất kỳ cổng nào, hãy đảm bảo rằng chúng nằm trên 1024. Hãy thử cấu hình ứng dụng mẫu trong tomcat (xóa tất cả các ứng dụng khác). Nếu nó đang chạy thành công nó có nghĩa là có một hạn chế về bộ nhớ. Hồ sơ yêu cầu bộ nhớ rất lớn. sử dụng -xms1024m -xmx1024m cho tomcat. Nếu mọi thứ khác thất bại. nghĩ đến việc chuyển sang jdk6 và tomcat 6. Sau nhiều thử nghiệm, tôi khám phá ra rằng có rất nhiều giới hạn trong jdk5 và tomcat5. chuyển sang tomcat6 và jdk6 giải quyết vấn đề cho tôi.

Profiling với netbeans không hoạt động JRockit, ibm jdk vv ..

--kiran.kumar

Các vấn đề liên quan