Application Servers & Java

JBoss EAP 쓰레드풀, AJP, 버퍼 및 리스너 구성 실습

midworker 2025. 5. 18. 13:24
반응형

JBoss EAP 쓰레드풀, AJP, 버퍼 및 리스너 구성 실습

이번 실습에서는 JBoss EAP의 HTTP 처리 성능을 조절하는 주요 설정 요소들
쓰레드 풀(worker), 버퍼, AJP 커넥터, 소켓 리스너(socket-binding)를 구성하고 점검합니다.


✅ Undertow 서브시스템 구성 이해

JBoss EAP 7은 HTTP 처리 서블릿 엔진으로 Undertow를 사용합니다.
Undertow 설정은 다음 XML 파일에 정의되어 있습니다:

/was/eap/standalone/configuration/standalone.xml

✅ 쓰레드 풀(worker) 설정

🔹 기본 worker 확인

<subsystem xmlns="urn:jboss:domain:io:1.1">
    <worker name="default"/>
    <buffer-pool name="default"/>
</subsystem>

🔹 사용자 정의 worker 추가

<worker name="custom-worker"
        io-threads="8"
        task-max-threads="128"
        stack-size="0"/>

✅ 버퍼 풀 설정

<buffer-pool name="custom-buffer"
             buffer-size="16384"
             buffers-per-slice="128"
             direct="true"/>
  • buffer-size: 단일 버퍼 크기 (기본 16KB)
  • buffers-per-slice: 한 슬라이스당 버퍼 개수

✅ Undertow 서버에 worker/buffer 적용

<server name="default-server">
  <http-listener name="default"
                 socket-binding="http"
                 worker="custom-worker"
                 buffer-pool="custom-buffer"/>
</server>

✅ AJP 커넥터 구성 (Apache 연동용)

<ajp-listener name="ajp"
              socket-binding="ajp"
              enabled="true"/>

Apache에서 mod_jk 또는 mod_proxy_ajp로 연동할 경우 필요


✅ 소켓 바인딩 설정 (포트 정의)

경로:

<socket-binding-group name="standard-sockets">

🔹 예시

<socket-binding name="http" port="8080"/>
<socket-binding name="ajp" port="8009"/>
<socket-binding name="management-http" port="9990"/>

✅ 설정 적용 절차 요약

  1. standalone.xml 백업
  2. worker, buffer-pool, ajp-listener 정의 추가
  3. serversocket-binding-group에서 명칭 일치 여부 확인
  4. JBoss 재기동:
./stop.sh
./start.sh

✅ 설정 확인 방법

  • netstat -anp | grep 8080 → 포트 오픈 확인
  • jboss-cli.sh 접속 후 설정 조회
cd /was/eap/bin
./jboss-cli.sh --connect

/subsystem=undertow:read-resource(include-runtime=true)

✅ 마무리

이번 실습에서는 HTTP 처리 성능과 직접적으로 관련된 쓰레드풀, 버퍼, AJP 포트 설정과
socket-binding 연결 방식을 실무 기준으로 구성했습니다.

반응형