4월, 2013의 게시물 표시

자바 유틸리티

출처 - http://blog.outsider.ne.kr/852?category=2 jps   : jps는 java process 목록을 제공하는 도구로 보통은 이름만 나오기 때문에 톰캣을 여러개 띄운 경우 구분할 수 없는데 이때는   jps -v 를 사용하면 실행옵션을 함께 볼 수 있다.   ps -ef | grep java 를 하는 것보다는 jps가 훨씬 간단하고 jstat과 다른 점은 자신의 계정으로 실행한 것만 보인다는 것이다. jstat  : jvm의 상황을 모니터링하는 도구로 운영서버에 절대 영향을 안주기 때문에 리얼서버에서 사용해도 문제가 없다. 유용한 옵션으로는 gc상태를 모니터링하는  -gcutil 과 jvm의 메모리 점유 상황을 모니터링하는  -gccapacity 가 있다. javap  : 자바 클래스 파일을 분석해 준다.  javap className 을 실행하면 해당 클래스에 선언된 변수와 메서드 정보등을 출력해 주고  javap -c className 을 실행하면 해당 클래스의 opcode(JVM을 위한 중간코드)를 출력해준다. jstack  : 쓰레드 덤프(thread dump)를 발생시켜서 덤프 발생시점에 어떤 쓰레드가 어떤 작업을 수행하는 지 제공하는 덤프파일을 생성한다. 하지만 jstack는 경우에 따라 프로그램에 Hang이 발생할 수 있으므로 사용하지 않는 것이 좋고 쓰레드 덤프는  kill -3 pid 를 사용할 것을 권장한다.(-3 옵션을 빼먹거나 -9를 사용하지 않도록 주의해야 한다.) jmap  : 힙덤프(heap dump)를 발생시켜서 덤프발생시점에 어떤 객체가 어떤 값을 갖고 있는지를 저장한다. 운영시에 jmap을 실행하면 자바 프로세스가 멈추므로 꼭 필요한 경우(메모리 릭 같은)에만 사용해야하고  jmap -dump:format=b, file=filename pid 같은 옵션을...