#WebLogic

[WebLogic 14c] JDBC 데이터소스 튜닝 가이드: 안정적인 DB 연결 최적화

[WebLogic 14c] JDBC 데이터소스 튜닝: 설정 경로 및 파라미터 최적화

Connection Pool 고갈 방지와 DB 성능 향상을 위한 실무 가이드

WebLogic 운영 중 발생하는 DB 접속 지연이나 BEA-001129(커넥션 부족) 에러는 대부분 데이터소스 설정 미흡에서 발생합니다. 오늘은 관리 콘솔의 정확한 설정 경로와 반드시 튜닝해야 할 5가지 핵심 파라미터를 알아보겠습니다.


1. 어디서 설정하나요? (설정 경로)

데이터소스 튜닝은 WebLogic 관리 콘솔에서 아래 경로를 통해 접근할 수 있습니다. 수정 후에는 반드시 [저장] 및 [변경 활성화]를 눌러야 적용됩니다.

📌 설정 메뉴 경로:
도메인 구조 > 서비스(Services) > 데이터 소스(Data Sources) > [해당 데이터 소스 이름 클릭] > 구성(Configuration) 탭 > 커넥션 풀(Connection Pool) 하위 탭

2. 반드시 튜닝해야 할 핵심 파라미터

커넥션 풀 탭 하단의 [고급(Advanced)] 버튼을 클릭하면 더 세부적인 설정이 가능합니다.

항목 설명 및 권장 가이드
Initial Capacity 기본값: 1. 서버 시작 시 생성할 커넥션 수입니다. 예상 최소 부하량에 맞춰 설정하면 초기 응답 속도가 개선됩니다.
Maximum Capacity 가장 중요한 설정입니다. WebLogic 스레드 풀 크기와 DB 서버의 수용 능력을 고려하여 설정합니다. (보통 50~100 사이)
Test Connections
On Reserve
[고급] 메뉴에 위치. 커넥션을 빌려주기 전 DB 연결 상태를 체크합니다. 방화벽 등에 의한 세션 끊김 방지를 위해 반드시 활성화합니다.
Statement Cache Size SQL 실행 계획 캐시입니다. 반복 쿼리가 많은 시스템은 20~50 정도로 높여 성능을 향상시킵니다.
Inactive Connection
Timeout
커넥션 누수(Leak) 시 강제 회수 시간입니다. 0(무한대)보다 특정 시간(예: 300초)을 설정하는 것이 안전합니다.

3. 설정 후 상태 모니터링

설정한 값이 적절한지는 [모니터링(Monitoring) > 통계(Statistics)] 탭에서 실시간으로 확인할 수 있습니다.

  • Active Connections High Count: 서버 기동 후 최대 몇 개의 커넥션이 동시에 사용되었는지 보여줍니다. 이 수치가 Max Capacity에 근접하면 한도를 늘려야 합니다.
  • Wait for Connection: 커넥션이 없어 대기한 횟수입니다. 이 수치가 0보다 크면 병목이 발생하고 있다는 증거입니다.

🚀 데이터소스 최적화 핵심 요약

  • ✅ 경로는 [서비스 > 데이터 소스 > 커넥션 풀]
  • ✅ 'Test Connections On Reserve' 체크는 필수 안전장치
  • ✅ 모니터링 탭의 'Wait Count'가 발생하지 않도록 유지

이 가이드는 WebLogic 14c 버전 관리 콘솔을 기준으로 작성되었습니다.

Open Stream →
#WebLogic

[WebLogic 14c] 성능 최적화 가이드: 스레드 풀 튜닝과 메모리 계산법

[WebLogic 14c] 성능 최적화 가이드: 스레드 풀 튜닝과 메모리 계산법

안정적인 Java 엔터프라이즈 서버 운영을 위한 핵심 모니터링 포인트

안녕하세요! 오늘은 WebLogic 14.1.x (14c) 환경을 운영하면서 가장 빈번하게 마주하는 성능 최적화 이슈를 정리해 보려고 합니다. 특히 순간적인 부하가 발생하는 시스템에서 필수적인 스레드 풀(Thread Pool) 튜닝과 Java 8 이후 변경된 메모리 계산 방식에 대해 심도 있게 다뤄보겠습니다.


1. WebLogic 스레드 풀(Thread Pool) 튜닝

WebLogic은 기본적으로 부하에 따라 스레드 수를 조절하는 Self-Tuning 모델을 사용합니다. 하지만 엔터프라이즈 환경에서는 스레드 생성 오버헤드를 방지하기 위해 최소/최대 값을 고정하는 것이 권장됩니다.

✅ 기동 옵션 적용 예시

-Dweblogic.SelfTuningThreadPoolSizeMin=100
-Dweblogic.SelfTuningThreadPoolSizeMax=100

* 시스템 환경에 따라 50~200 사이로 설정하며, Min/Max를 동일하게 설정하여 'Warm-up' 상태를 유지합니다.


2. 관리 콘솔을 통한 실시간 모니터링

설정한 스레드 풀이 정상적으로 동작하는지 확인하기 위해 WebLogic Admin Console의 모니터링 기능을 활용합니다.

📌 모니터링 경로:
환경(Environment) > 서버(Servers) > [대상 서버 선택] > 모니터링(Monitoring) > 스레드(Threads)
핵심 지표 의미 위험 신호
Queue Length 대기 중인 요청 수 지속적인 상승
Stuck Threads 고착된 스레드 1건 이상 발생
Throughput 초당 처리량 급격한 하락

3. 정확한 메모리 계산법 (Heap vs Metaspace)

Java 8 이후로는 Metaspace가 Native Memory 영역으로 이동했습니다. 따라서 전체 메모리 사용량 = Heap + Metaspace + Native 영역으로 계산해야 합니다.

💡 Metaspace 사용률의 오해

jstat -gc 명령어로 확인 시 전체 크기(MC)가 작게 보일 수 있습니다. 이는 JVM이 클래스 로딩 양에 맞춰 메모리를 동적으로 할당하기 때문입니다.

  • MC (Metaspace Capacity): 현재 OS로부터 할당받은 크기
  • MU (Metaspace Used): 실제 클래스 메타데이터가 점유한 크기

※ 운영 팁: 사용률 계산 시 MC가 아닌, 기동 옵션에서 설정한 MaxMetaspaceSize를 분모로 계산해야 정확한 자원 고갈 여부를 판단할 수 있습니다.


🚀 안정적인 운영을 위한 체크리스트

  • ✅ 스레드 풀 Min/Max를 동일하게 설정했는가?
  • ✅ Metaspace 사용률이 설정값 대비 90% 이하인가?
  • ✅ JDBC 데이터소스의 'Maximum Capacity'가 적절한가?

본 가이드는 WebLogic 14.1.1 및 JDK 1.8 기반으로 작성되었습니다.

Open Stream →