2011-02-27 4 views
6

DTrace 흥미를 끌었지 만 개인적으로 DTrace를 사용하지 않으면 얻을 수없는 정보를 얻을 수있는 사용 사례를 직접 보지 못했습니다.DTrace 스크립트로 Solaris에서 Java 프로그램을 테스트하고 프로파일 링하는 데 도움이되는 것

따라서 간과 한 것을 듣고 싶습니다. 내가 독립 실행 형 응용 프로그램과 Java EE 웹 응용 프로그램 (대부분 소켓을 사용하는 레거시 백엔드와 크게 통신하는)을 만들 때 차이를 만들 수있는 VMWare OpenIndiana 빌드 148에서 수행 할 수있는 작업은 무엇입니까?

Dtrace 스크립트는 대단히 환영합니다.

+0

"진짜 질문이 아닙니다"? 어떻게하면 될까요? –

답변

6

DTrace에 대한 좋은 경험이 있습니다.

24x7 실행중인 프로덕션 서버에서 Java 코드를 실행하는 클라이언트를 사용했습니다. 우리는 애플리케이션에 몇 가지 성능 문제가있었습니다. 프로파일 러를 부착하기 위해 JVM을 중지하는 것은 불가능했습니다. 또한이 실험은 동일한 하중 하에서 실험실에 존재하지 않았습니다.

실행중인 JVM에 DTrace를 연결할 수 있고 도입 된 오버 헤드가 최소한으로 (Netra T2000 SPARC 시스템에서는 1.3 %) JVM 관련 프로브로 DTrace를 사용하여 문제를 해결했습니다.

모든 디버깅은 고객의 실험실로 전화 접속 (33kbps) 회선을 통해 수행되었습니다. 이 제약 조건을 가진 다른 프로파일 러/디버거를 실행하는 것은 거의 불가능합니다 (JDWP는이 대역폭에 대해 매우 장황합니다). DTrace 스크립트를 사용하여 흥미로운 부분 만 필터링했습니다. 몇 가지 힌트를 들면

은 다음을 참조하십시오 http://java.dzone.com/articles/java-profiling-dtrace?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+javalobby/frontpage+(Javalobby+/+Java+Zone)

http://download.oracle.com/javase/6/docs/technotes/guides/vm/dtrace.html

내가 그 스크립트 http://blogs.oracle.com/ahl/date/20050418#dtracing_java

또 다른 큰 플러스 을 적응 쉽게 사용자 정의 통계를 작성하는 데 사용할 수 집계 된 값입니다.

그러나 적절한 조건이 있으면 도구로 모든 것을 쉽게 할 수 있습니다. DTrace는 매우 강력하지만 더 많은 베어 메탈 조건을 목표로합니다 (DLight 프로젝트가 도움이 될지도 모름).

+0

좋습니다. 그럼 성능 문제는 뭐니? –

+0

설명하기가 쉽지 않습니다. 신청서는 전화 회사 용이었습니다. 이벤트 주도형 SIP 애플리케이션이었습니다. 첫 번째 : SIP 세션이지도에 보관되었습니다. 부하가 많은 경우 새로운 수신 통화가 현재 수신 통화로 BYE 메시지를 차단했기 때문에 종료되지 않는 통화가있었습니다. DTrace는 경쟁 조건을 보여주었습니다. 두 번째 : SIP 메시지 구문 분석으로 인해 문자열 개체가 대량으로 생성되었습니다. 나는 문자열 생성을 줄이고 GC를 돕는 앱에서 가장 뜨거운 점을 발견했습니다. –