SEARCH
TOOLBOX
LANGUAGES
Java

Java

From Chaehyun

(Difference between revisions)
Jump to: navigation, search
Line 34: Line 34:
** TDA에서 Native-ID랑 ps -eLf 네 번 째 옵션이랑 동일함 -> TDA에서 해당  Native ID를 확인하면 어느 thread가 계속 먹고 있는지 확인할 수 있음
** TDA에서 Native-ID랑 ps -eLf 네 번 째 옵션이랑 동일함 -> TDA에서 해당  Native ID를 확인하면 어느 thread가 계속 먹고 있는지 확인할 수 있음
** TDA에서  네 번째 쌍안경을 누르면 계속 각 dump에서 계속 살아 남은 thread를 확인할 수 있음
** TDA에서  네 번째 쌍안경을 누르면 계속 각 dump에서 계속 살아 남은 thread를 확인할 수 있음
 +
 +
== 실습 ==
 +
* 네이버 뉴스
 +
** 네트워크, 디스크 가 병목이었을 수 있음
 +
* 포토
 +
** 자바 문제가 아님, 아파치 웹 서버 문제였음
 +
** 스레드 수로 대충 파악 가능함
 +
* activeQ
 +
** thread에서 AlamrmListener 클릭
 +
** 아래에 링크 클릭
 +
** 모니터로 연결
 +
** 많은 thread가 줄 서 있음
 +
* cafe
 +
** elf log 보면서 시간이 많이 걸린 녀석들을 찾아본다
 +
** TDA - thread에서 Native ID로 조회해서 확인
 +
** GC가 시간을 다 먹고 있었음
 +
** memory leak

Revision as of 04:50, 28 January 2011

  • Lock을 피하는 10가지 방법 -> 나중에 읽어볼 것
  • 쓰레드 덤프
    • linux : kill -3 pid 명령어
    • windows : ctrl + break
    • 공통 : jstack (비추)
    • kill -3 dump는 크게 문제 없음 (운영 중인 서비스라 할지라도)
  • pid 확인 방법
    • linux : ps -ef | grep java
    • windows : 작업 관리자 프로세스 화면 -> 보기 -> 열선택
  • JConsole
    • cmd 창에서 JConsole - Connect
    • jps
    • jstack ### (dump 나옴)
  • 툴을 사용하자
    • TDA (Thread Dump Analyer) http://java.net/projects/tda/
    • 윈도우에서 로그 남기는 팁
      • putty 설정 - Change Setting - Session - Logging - All Session output
      • screen은 끄고 하는 게 신상에 이로움
    • TDA에서 로그 파일을 연다
      • 로그파일(날짜)로 시작하는 파일이어야 TDA에서 제대로 인식함
  • ps -eLf | grep java
    • thread별 cpu 사용량을 보여준다
    • watch out L option
    • TDA에서 Native-ID랑 ps -eLf 네 번 째 옵션이랑 동일함 -> TDA에서 해당 Native ID를 확인하면 어느 thread가 계속 먹고 있는지 확인할 수 있음
    • TDA에서 네 번째 쌍안경을 누르면 계속 각 dump에서 계속 살아 남은 thread를 확인할 수 있음

실습

  • 네이버 뉴스
    • 네트워크, 디스크 가 병목이었을 수 있음
  • 포토
    • 자바 문제가 아님, 아파치 웹 서버 문제였음
    • 스레드 수로 대충 파악 가능함
  • activeQ
    • thread에서 AlamrmListener 클릭
    • 아래에 링크 클릭
    • 모니터로 연결
    • 많은 thread가 줄 서 있음
  • cafe
    • elf log 보면서 시간이 많이 걸린 녀석들을 찾아본다
    • TDA - thread에서 Native ID로 조회해서 확인
    • GC가 시간을 다 먹고 있었음
    • memory leak
Retrieved from "http://chaehyun.kr/w/Java"