본문 바로가기

IT/JAVA

자바 트러블슈팅 - (1. 자바 기반의 시스템에서 발생할 수 있는 문제들)

반응형

https://www.yes24.com/Product/Goods/84937877

 

자바 트러블슈팅 - YES24

건강한 서비스를 위한 scouter 활용법은 물론,그 밖의 시스템 장애 극복을 위한 다양한 도구 사용법을 배운다!기술이 아무리 발전하고 뛰어난 개발자가 있더라도 사람이 만든 프로그램은 언제든

www.yes24.com

 

자바 기반의 시스템에서 발생할 수 있는 문제들

서비스나 시스템 장애가 발생하면 대부분은 서버의 로그를 보거나 서버의 리소스 사용량을 보고 짐작

경험이 풍부 -> 데이터를 기반으로 문제의 원인을 쉽게 찾아냄

경험이 없음 -> 중요 데이터를 수집하지 않고 서버를 재시작 하는 경우가 있음

 

어떤 문제가 발생할 수 있을까?

  • 시스템이 느려짐
  • 시스템 응답이 없음
  • 예외 발생
  • 시스템 죽음

 

시스템이 느려짐

시스템이 느리다는것은 너무 큰 범주

어느정도 상세히 구분하면 다음과 같음

  • 전체 시스템이 항상 느린 경우 : 장비를 기동했을 때부터 느린 경우나 WAS를 시작했을 때 부터 느린 경우
  • 특정 기능이 느린 경우 : 다른 기능들은 괜찮은데 특정 기능만 느린 경우
  • 특정 시간대에 전체 애플리케이션이 느린 경우
  • 특정 시간대에 특정 애플리케이션이 느린 경우
  • 특정 기능이 점점 느려지는 경우
  • 특정 사용자만 애플리케이션이 느린 경우

이중 특정 기능만 느린 경우는 원인을 찾기 쉬움

특정 시간대에 특정 애플리케이션만 느린경우는 원인을 찾기 어려움, 재현이 힘들기 때문

 

시스템 응답이 없음

프로세스가 살아 있지만 아무런 응답이 없는 경우

응답이 매우 느린것이 응답이 없는것처럼 보일 수 있음

  • CPU 사용량은 10%이내지만 시스템이 응답하지 않는 경우 : 시스템 내/외 적인 원인이 있을 수 있음
  • CPU 를 하나 이상 100%점유하면서 시스템이 응답하지 않는 경우 : 내적인 문제일 가능성이 높음

 

예외가 계속 발생

예외가 계속 발생할 경우 원인은 애플리케이션을 잘못 코딩한 경우가 대부분

  • 모든 사용자가 특정 기능을 수행하면 예외가 발생 : 특정 애플리케이션 이슈
  • 특정 사용자의 특정 기능에서만 발생 : 특정 조건에 따라 발생
  • 특정 시간대에만 전체 애플리케이션에 예외 발생
  • 특정 시간대에 특정 애플리케이션에 예외 발생

예외 발생시 가장 큰 힌트는 시스템 로그

 

시스템이 죽음

프로세스가 죽는 경우

대부분 시스템을 재시작

기본적으로 JVM에서 충돌로그를 제공하는데 해당 로그를 분석

 

 

개발자가 개발만 잘하면 된다고 생각하지 말자

병목을 조심하자

 

 

https://github.com/vljh246v/TIL-NEW/tree/main/troubleshooting

반응형