2010-05-12 3 views
2

프로덕션 weblogic (10) 인스턴스에서 jmap jdk1.5 도구를 사용하여 힙 덤프를 수행 할 계획입니다.Weblogic, JVM 및 EAR

실제로이 웹 로직 인스턴스에 배포 된 3 개의 EAR (아마도 더 이상 액세스 할 수 없다는 것을 모르는 경우)이 있습니다.

"weblogic이 각 EAR에 대해 JVM을 만듭니다" 누군가이를 확인할 수 있습니까?

jmap으로 힙 덤프를 수행하는 매개 변수로 jvm pid가 필요합니다 ... 이후 3 개가 있습니다. 3 개의 pid가 있으므로 어떤 pid가 어떤 EAR JVM에 해당하는지 알 수 있을까요?

답변

7

아니요 - 각 Weblogic 서버 (또는 자바 프로세스)는 자체 PID로 자체 JVM에서 실행됩니다. 따라서 모든 EAR은 동일한 힙 덤프에 나타납니다.

동일한 머신에서 실행중인 다중 웹 로직 서버 인스턴스가있는 경우, 각각 별도의 PID와 @josek가 말한대로

4

, 당신은 웹 로직 서버 당 하나의 JVM을해야합니다 별도의 프로세스를, 그래서 모든 경우 EAR은 동일한 WebLogic 서버 아래에 있으므로 하나의 PID 만 덤프 할 수 있습니다. 하지만 관리자 서버와 관리 서버, 아마도 다른 관련이없는 인스턴스가 여러 개있을 수 있습니다. ps -ef | grep java (유닉스에 있다고 가정합니다.)과 같은 작업을 수행하면 많은 수의 pid를 볼 수도 있습니다. 그것을 WebLogic의 JDK_HOME으로 필터링 할 수 있습니다.

어떤 서버가 특정 서버에 속하는지 식별하는 한 가지 방법은 <domains>/servers/<your server>/tmp 디렉토리로 이동하여 fuser -f <your server>.lok을 실행하는 것입니다. 그러면 해당 서버와 관련된 모든 프로세스의 pid가 나열되며 그 중 하나가 JVM java 프로세스가됩니다. 그냥 자바 프로세스를 찾기 위해 한 가지 방법 (JDBC 등 다른 사람이 될 수 있음) (! 나는 누군가가 또 다른, 더 나은 방법을 지적 확신) 뭔가 같은 :

cd <domains>/servers/<your server>/tmp 
ps -p "`fuser -f <your server>.lok 2>/dev/null`" | grep java 

각 EAR이있는 경우 그 자신의 서버, 당신은 당신이 필요한 것을보기 위해 config.xml을 봐야 할 것 같아요.