자바트러블슈팅-메모리 진단하기(4)
메모리 진단하기메모리 문제시스템이 느리다고 항상 메모리 단면을 사용하는 것은 아니다.먼저 스레드가 원인일지 모르니 스레드로 원인 분석을 먼저해보는것이 좋다. 메모리 문제로 인하여 응답시간이 느려질때는 원인 메모르 크기를 잡지 않거나 너무 작게 잡아 GC가 너무 자주 ...
Read more
자바트러블슈팅-메모리 진단하기(3)
메모리 진단하기잘라놓은 메모리 단면 분석하기메모리 단면을 분석하는 도구 MAT IBM Heap Analyzer 12jmap -dump:format=b,file=holemem.hprof PID 위에 명령어로 덤프를 떠서 확인을 해볼수 있다 Leak Suspects ...
Read more
자바트러블슈팅-메모리 진단하기(2)
메모리 진단하기메모리 단면은 언제 자르나?힙 덤프는 메모리가 부족해지는 현상이 지속해서 발생할 때와 OutOfMemoryError가 발생했을 때 생성해야 한다.이러한 메모리 문제가 아닌 다른 상황에서는 메모리 단면을 잘라 놓을 필요가 없다는 말이다. 메모리가 부족해지는 ...
Read more
자바트러블슈팅-메모리 진단하기(1)
메모리 진단하기메모리 때문에 발생할 수 있는 문제OutOfMemoryError가 발생하는 경우 가비지 컬렉터가 새로운 객체를 생성할 공간을 더 이상 만들어주지 못하고, 더이상 힙 영역의 메모리가 증가될 수 없을때 네이티브 라이브러리 코드에서 스왑 영역이 부족하여 ...
Read more
자바트러블슈팅-스레드 진단하기(5)
스레드 진단하기스레드 문제스레드 단면으로 어떤 문제를 확인할 수 있을까?시스템이 죽는 경우는 스레드 단면으로 확인 할수 없는데 123-XX:OnError=string XX:OnError=string 명령 행 옵션을 사용하여 지정 여기서 string 은 단일 ...
Read more
자바트러블슈팅-스레드 진단하기(4)
스레드 진단하기잘라 놓은 스레드 단면 분석하기threadlogic은 스레드 분석용으로 매우 강력한 기능을 제공하면서 전혀 복잡하지 않다. threadlogic의 특징은 여러 스레드 단면을 동시에 분석 할 수 있다. 잠김 현상이 발생한 스레드를 매우 쉽게 추적할수 있 ...
Read more
최범균 OOP
최범균 OOP비용개발에서 비용은 고려대상이다. 작은 비용으로 변경이 가능해야 된다. 객체절차 지향 vs 객체 지향 절차 지향 - 데이터를 공유하는 모델(비용을 올리는 경우가 많다.) 객체 지향 - 테이터와 프로시저를 따로 분리 객체란객체의 핵심 -> 기능제공 ...
Read more
자바트러블슈팅-스레드 진단하기(3)
스레드 진단하기스레드 단면 잘라 놓기스레드 단면을 분석하면 매우 빨리 원인을 찾을수 있다. 모든 시스템이 응답이 없을 때(시스템에 행이 걸렸을 경우) 사용자 수가 많지도 않은데, 시스템 cpu 사용량이 떨어지지 않을때 특정 애플리케이션을 수행했는데 전혀 응답이 없을때 ...
Read more
자바트러블슈팅-스레드 진단하기(2)
스레드 진단하기록 경합을 피하는 10+1가지 방법 코드가 아닌 데이터를 보호 하라. - 가장 간단하고 빠른 방법은 전체 함수 호출에 synchronized를 거는 것이다.하지만 데이터 만 synchronized 블록으로 감싼다면 중요한 코드를 잠그는데 드는 시간을 줄 ...
Read more
자바트러블슈팅-스레드 진단하기(1)
스레드 진단하기스레드에서 발생하는 문제 중 가장 대표적인것레이스 컨디션(race condition)멀티 스레드 환경에서 하나이상의 공유데이터를 처리 할때 아무런 록처리를 하지 않을 경우 동시에 여러 스레드에서 데이터를 수정할수있다.이런 상황에서 데이터가 꼬여서 무한대기 ...
Read more