달력

6

« 2025/6 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

'웹로직 모니터링'에 해당되는 글 1

  1. 2010.01.25 [JDBC] WebLogic Data Source Monitoring
2010. 1. 25. 17:47

[JDBC] WebLogic Data Source Monitoring WebLogic/JDBC2010. 1. 25. 17:47


WAS에 배포된 애플리케이션들이 DB작업을 하는데 있어서 WAS 제품에 의해 제공된 커넥션 풀의 상황에 대한 모니터링을 해준다.

웹로직 서버에 배포된 애플리케이션들은 제공되는 Data Source를 가지고 DB에 접근하게된다.

Data Source는 커넥션 풀을 가지고 있으며, ....


==============================================================================
다양한 문제 사례
==============================================================================
1. 특정 서버에 대한 cpu 사용률이 다른 서버에 비해 월등히 높다. (모든 서버가 동일 업무처리)
접근키워드: 특정 서버, cpu 사용률
특정 서버가 문제가 되는것은 WAS 앞단에서 전달을 잘못했다.
cpu 사용률이 높아지는 업무에는 DB, ...등이 있다.

2. 쓰레드는 놀고있는데 현재 사용중인 DB connection은 너무 많다.
접근키워드:
쓰레드가 놀고있다. -> 부하는 그리 많지 않다. 또는 부하가 있더라도 처리가 빨리되서 쓰레드가 빨리 반납된다.
DB connection이 너무 많다. -> 실제 DB업무가 많다. 또는 쓰지도 않으면서 커넥션만 맺어져있다.








관리자는 Data Source에 대한 모니터링을 통해 뭘 할 수 있을까?

쓰레드와 Data Source 모니터링을 통해 쓰레드와 커넥션의 개수를 산정한다.

connection leak이 발생하는 것을 추측할 수 있다.

쓰레드는 놀고 있는데, connection 사용량이 생각보다 많다면 connection leak을 예상할 수 있다.

정확하게 connection leak 여부를 판단하기 위해서는 다음의 두가지가 필요하다.

inactive connection timeout값 설정
profiling connection leak 옵션 enable

만약 connection leak이 발생하면 weblogic server log에 connection leak이 감지되었음을 알리는 로그가 남게된다.

Data Source와 Data Source를 사용하는 서버 인스턴스별로 아래 항목이 각각 보여지게 된다.

동일한 Data Source에서 Active Connections Average Count가 특별하게 높은 서버 인스턴스에 대해서
해당 서버가 해당 DS(Data Source)를 처리하는 업무가 많다. (DB 접근 업무가 많다)
만약 3대의 서버가 동일 업무를 처리하는데 특정 서버의 Active Connections Average Count가 높다면,
앞단의 L4, 웹서버등의 로드밸런서(부하분산기)가 부하분산을 제대로 못했거나 재수없게 DB 업무가 해당 서버에 몰린다고 볼 수 있다.




DataSource 모니터링 화면의 항목 자료형 한글 설명
Server   고정값 DataSource가 배포되어 있는 Server명
Active Connections Average Count  기동후 누적값 기동 후부터 조회한 시점까지의 Active Connection의 평균값
- Avg(Active Connections Current Count)
Active Connections Current Count  현재 조회값 현재 사용 중인 Connection 개수
Active Connections High Count  기동후 최대값 기동 후부터 조회한 시점까지의 Active Connection의 최대값
- Max(Active Connection Current Count)
Connection Delay Time  기동후 누적값 millisecond 단위로 DB와의 물리적인 연결하는데 걸린 평균 시간값
- Avg(DB Connection 연결 시간들)
Connections Total Count  기동후 누적값 기동 후부터 조회한 시점까지의 DB Connection이 생성된 총횟수
- Sum(Create DB Connection)
Current Capacity  현재 조회값 현재 연결되어 있는 DB Connection 개수
Curr Capacity High Count  기동후 최대값 기동 후부터 조회한 시점까지의 Current Capacity의 최대값
- Max(Current Capacity)
Enabled  고정값 DataSource의 Enabled/Disabled의 상태
Failed Reserve Request Count  기동후 누적값 해당 DS에서 요청을 받았지만 수행되지 못한 누적 수
Failures To Reconnect Count  기동후 누적값 해당 DS가 DB Connection refresh를 시도해서 실패한 수. DB가 unavailable 이거나 DB로의 network connection이 원활하지 않은 경우 refresh가 실패할 수 있음
Highest Num Available  기동후 최대값 기동 후부터 조회한 시점까지의 Num Available의 최대값
- Max(Num Available)
Leaked Connection Count  현재 조회값 close()하지 않은 누수된 Connection 개수
Num Available  현재 조회값 현재 사용할 수 있는 DataSource 개수
Num Unavailable  현재 조회값 현재 사용할 수 없는 DataSource 개수
PrepStmt Cache Access Count  기동후 누적값 기동 후부터 조회한 시점까지의 Statement Cache에 Access한 총횟수로 각 Connection마다의 Access한 횟수의 총합계
Prep Stmt Cache Add Count  기동후 누적값 기동 후부터 조회한 시점까지의 Statement Cache에 Add한 총횟수로 각 Connection 마다의 Add한 횟수의 총합계
Prep Stmt Cache Current Size  현재 조회값 기동 후부터 조회한 시점까지의 각 Connection의 Statement Cache의 크기의 총합계
Prep Stmt Cache Delete Count  기동후 누적값 기동 후부터 조회한 시점까지의 Statement Cache에 Delete한 총횟수로 각 Connection 마다의 Delete한 횟수의 총합계
- Statement Cache가 full 상태에서 새로운 Statement를 Add하려고 할 때 Statement Cache Delete가 발생함
Prep Stmt Cache Hit Count  기동후 누적값 기동 후부터 조회한 시점까지의 Statement Cache의 해당 Statement가 있었던 총횟수
Prep Stmt Cache Miss Count  기동후 누적값 기동 후부터 조회한 시점까지의 Statement Cache의 해당 Statement가 없었던 총횟수
Reserve Request Count  기동후 누적값 Connection을 요청한 총 횟수
State  현재 조회값 DataSource의 상태 : Running/Suspended/Shutdown/Unhealthy/Unknown
JDBC Driver  고정값 JDBC Driver명
Wait Seconds High Count  기동후 누적값 connection 을 얻기 위해 가장 오래 기다린 시간
Waiting For Connection Current Count  현재 조회값 현재 Connection을 얻기 위해서 기다리고 있는 개수
Waiting For Connection Failure Total  기동후 누적값 기동 후부터 조회한 시점까지의 Connection을 받기 위해서 기다렸으나 Connection을 얻지 못한 횟수의 총합계
- Sum
Waiting For Connection High Count  기동후 최대값 기동 후부터 조회한 시점까지의 Connection을 받기 위해서 기다렸던 횟수의 최대값
- Max(Waiting For Connection Current Count)
Waiting For Connection Success Total  기동후 누적값 기동 후부터 조회한 시점까지의 Connection을 받기 위해서 기다리고 성공적으로 Connection을 얻은 횟수의 총합계
Waiting For Connection Total  기동후 누적값 기동 후부터 조회한 시점까지의 Connection을 받기 위해서 기다렸던 횟수의 총합계

:
Posted by 버드MC