Table of Contents
ToggleOracle OID 연결 제한 진단: 프로세스별 상한과 확장 조건
요약: 1024 연결 제한 메시지와 외부 집계가 다를 때 확인할 범위, 프로세스별 상한과 확장 조건을 정리합니다. 5,000 연결은 검증 목표이며, 설정값의 곱만으로 처리 용량을 보장할 수 없습니다. 원래 명령 예제는 문법·집계 범위가 검증되지 않았으므로 그대로 실행하지 마세요.
Oracle OID 연결 한계
원문에는 다음 오류와 관측값이 제시되어 있습니다. 당시 버전·수집 시각·원본 로그는 확인되지 않았으므로 검증된 장애 사례로 단정하지 않습니다.
- Error: “Exceeding maximum number of connections … Num Conns = 1024, Max Conns = 1024”
- External Count: 원문에 제시된 855–893 연결. OID 내부 값과 같은 시각·범위를 측정했는지는 미확인
- Puzzle: 내부 1024와 외부 집계의 측정 범위가 같은가?
원문 관측값과 추가 확인 사항
- 프로세스 수:
ps … | wc -l = 2만으로 프로세스 역할이나 실행 중인orclserverprocs=1을 확정할 수 없습니다. 인스턴스·PID·역할을 따로 확인해야 합니다 - FD 한도/사용:
nofile 65536/65536, 현재 FD =277은 한 시점의 값입니다. 오류 시점의 해당 PID 한도·사용량이 아니면 FD 병목을 배제할 수 없습니다 pgrep -a미지원 여부는 도구 버전에 따라 다릅니다.pgrep -fl oidldapd출력도 실행 중인 인스턴스와 프로세스 역할을 확인한 뒤 해석합니다ldapsearch(3060) 실패만으로 TLS 강제나 정책 차단을 단정할 수 없습니다. 실제 리스너·경로·TLS 방식과 오류 메시지를 분리해 확인합니다. 3060/3131은 예시 포트입니다- 원문에 기록된 설정값(현재 운영값으로 확인한 것은 아님):
— Max per proc =1024
—orclserverprocs = 1, Idle(min) =60
— Dispatcher/proc =5, DB Conn/proc =4
예시 구성: orclserverprocs = 1
Key OID Settings:
• orclserverprocs = 1 (Number of server processes)
• Max LDAP Connections per Server Process = 1024
• 설정상 합산 상한 예시 = 1 × 1024 = 1024. 사용자 수·요청 처리량·검증된 용량과는 다릅니다
• orclserverprocs = 1 (Number of server processes)
• Max LDAP Connections per Server Process = 1024
• 설정상 합산 상한 예시 = 1 × 1024 = 1024. 사용자 수·요청 처리량·검증된 용량과는 다릅니다
연결 제한을 진단할 때 확인할 질문
Q1: 내부 한도와 외부 집계가 다른 이유는 무엇인가요?
답변:
orclmaxldapconns는 서버 프로세스별 동시 연결 한도입니다. 1024는 문서의 기본값이자 원문의 설정 예시이며 모든 환경의 고정 한계가 아닙니다. orclserverprocs=1과 오류 PID가 확인된 경우에도 외부 집계와 수집 시각·포트·상태를 맞춰야 원인을 좁힐 수 있습니다.
외부 집계와 대조할 항목:
- 실제 SSL/비SSL 포트와 수집 시각·권한의 차이
CLOSE_WAIT,TIME_WAIT등 상태별 차이. TIME_WAIT는 활성 LDAP 연결과 같지 않으며 PID가 없을 수 있습니다- IPv6 미포함
Q2: 5,000 연결 목표를 어떤 조건에서 검증하나요?
답변:
orclserverprocs × orclmaxldapconns는 같은 인스턴스에서 설정값을 합산한 상한의 예시입니다. 연결 분배·프로세스별 여유·DB 및 OS 자원 때문에 실제 수용량은 더 낮을 수 있습니다. 설치 버전에 맞춘 변경·재시작 계획과 대표 부하 테스트가 필요합니다. 아래 PID 집계는 별도 검증 전에는 OID 내부 카운터나 용량 판정의 근거로 사용할 수 없습니다.
Step 1: 엔드포인트 확인
Bash • Port listening check
# 3060(Non-SSL), 3131(LDAPS) 리스닝 확인
$ ss -lntp | grep -E "\b:(3060|3131)\b"
UI에서도 확인하기
- ODSM → Connections: Host/Port 및 SSL/StartTLS 여부
- EM(Fusion Middleware Control) → Server Properties: Non-SSL/SSL Port 값
Bash • OID 데몬 커맨드라인 확인
$ pgrep -fl oidldapd
Step 2: PID별 소켓 관측 예제 — 집계 검증 필요
Bash • Per-PID totals & TOTAL
$ sudo ss -tanp '( sport = :3060 or sport = :3131 )' 2>/dev/null \
| awk '/ESTAB|SYN-RECV|CLOSE-WAIT|TIME-WAIT/ && match($0,/pid=([0-9]+)/,m){c[m[1]]++} \
END{tot=0; for(p in c){printf "PID %s %d\n",p,c[p]; tot+=c[p]} printf "TOTAL %d\n",tot}'
Step 3: 5,000 연결 목표의 조건부 검증
- 계산 예시:
orclserverprocs가 5라면 5×1024=5120. 보수적 권장값이나 달성 실적이 아닙니다 - 검증: 집계 문법과 상태·PID 범위를 먼저 검증하고, 대표 부하·지연·오류·자원 및 내부 카운터를 함께 평가합니다. 수분간의 TOTAL 피크만으로 안정적인 용량을 입증할 수 없습니다
부하 검증 시 기록할 항목
- 부하 테스트 중: 검증된 관측 도구로 동일 시각·범위의 값을 주기적으로 기록
- 피크 기록: TOTAL의 정의·상태·PID 누락 여부와 지연·오류율을 함께 기록
- 점진 확장: 프로세스 2 → 3 → 5는 시험 예시이며, 각 단계의 자원·성능·되돌리기 기준을 먼저 정합니다
- 리소스 관찰: CPU/메모리/DB 세션/FD 함께 모니터링
변경 전 확인 사항
- 프로세스를 늘리면 메모리와 DB 연결 예산도 늘어납니다. CPU 사용량과 처리량은 부하·경합에 따라 달라집니다
- OID의 프로세스별 DB 연결과 DB 세션 예산을 먼저 점검합니다. WLS JDBC 풀은 실제 요청 경로에 있는 애플리케이션에 한해 별도로 검토합니다
- 설치 버전별 재시작 요건을 확인하고 변경 창·되돌리기·성능 검증을 준비합니다
- 피크 시간대 자원/슬롯 관찰
5,000 연결 목표를 검증하기 위한 단계별 시험 예시
Phase 1 — 기준 측정 후 개별 변수 시험
- orclserverprocs: 1 → 2 (필요 시 3)는 시험 예시입니다. 프로세스별 연결 분배와 자원 여유를 측정하고 재시작 요건을 확인합니다
- Idle Connection Timeout(min): 60 → 15–30은 원문의 시험 예시이며 권장값이 아닙니다. 클라이언트 풀의 재연결·유휴 유지 요구를 확인합니다. 통계 수집 대상 사용자는 이 timeout의 예외일 수 있습니다
- Dispatcher Threads/proc: 5 → 8–10은 버전과 실제 대기·CPU 경합을 확인할 시험 예시입니다. 지연 감소를 보장하지 않습니다
- Max LDAP Conn/proc: 1024는 원문의 설정 예시입니다. 변경 여부는 실제 상한·OS FD 예산·프로세스별 분배를 확인해 결정합니다
Phase 2 — 1단계로도 포화 시
- DB Connections/proc: 4 → 8(또는 12)는 원문의 시험 예시입니다. DB 세션 예산·대기·경합을 확인하며, 증가만으로 처리시간 단축을 보장하지 않습니다
- orclserverprocs 추가 상향: 문서의 코어 수 기준을 출발점으로 삼되 버전·부하·자원 여유로 검증합니다. 아래 core id 고유값 집계는 다중 소켓·가상환경에서 실제 코어 수와 다를 수 있습니다
- 코어 수 확인:
cat /proc/cpuinfo | grep "core id" | sort | uniq | wc -l
Phase 3 — 필요 시 ~5,000 근접
- 설계 목표: per-proc 1024와
orclserverprocs = 5의 합산은 5120입니다. 연결 분배와 대표 부하 검증 전에는 5,000 연결 지원을 주장할 수 없습니다 - 사전 점검: OID DB 연결 및 DB processes/sessions 예산, 시스템 메모리/CPU/FD, 버전별 재시작·되돌리기 계획. WLS JDBC 풀은 실제 경로에 있을 때만 별도로 검토합니다
집계 차이를 해석할 때 주의할 점
낮게 집계될 때 확인:
- 3060/3131을 고정값으로 가정하지 말고 실제 리스너를 기준으로 SSL/비SSL 범위를 맞춥니다
- IPv4/IPv6 바인딩 및 정책 확인
ESTAB,SYN-RECV,CLOSE_WAIT,TIME_WAIT를 따로 해석합니다. 상태명을 섞은 합계는 활성 LDAP 연결 수가 아닙니다- 실제 OID 서버 PID·내부 카운터·외부 소켓의 같은 시각 자료를 대조합니다. pid가 없는 행은 아래 예제에서 누락될 수 있습니다
OID / DIP
이 주제에서 이어서 보기
Oracle & Enterprise · 주제별 가이드 전체 보기 →
