본문 바로가기
Middleware/JEUS

JEUS MS(컨테이너) 추가 방법

by eykim 2023. 3. 14.

 

JEUS WebAdmin에서 MS(ManagedServer, 컨테이너)를 추가하는 방법에 대한 설명입니다.

MS는 신규로 생성하거나 기존에 사용중인 MS를 복제하여 생성할 수 있습니다. 신규로 생성하는 것은 초기 설정부터 해야하므로 추가할 사항이 많아 기존에 사용중인 MS를 복제하여 추가하는 방법을 권장드립니다.

이 글에서도 기존에 추가되어 있는 MS를 복제하여 생성하는 방법 기준으로 설명드리겠습니다.

 

JEUS WebAdmin에 접속하여 로그인합니다.

메인화면 좌측에 Servers 메뉴를 클릭하여 현재 운영중인 MS 리스트를 확인할 수 있습니다. 

 

도메인 설정을 변경하려면 좌측 메뉴바 하단에 있는 LOCK & EDIT 버튼을 클릭하여 수정 모드로 변경 해야합니다.

수정 모드로 전환하면 서버 목록의 DUP+ 버튼이 활성화 됩니다.

서버 목록 중 기존에 이미 존재하는 서버를 복제하여 생성하면 되며, 예시에서는 server1의 DUP+ 버튼을 선택하여 server1을 복제하도록 하겠습니다.

 

DUP+ 버튼을 클릭하면 Duplicate 팝업창이 나타납니다.

팝업창에서 Node Name, Name, Listen Address, Listen Port 값을 설정 후 확인 버튼을 클릭하여 server2를 생성합니다.

 

  [각 설정 값의 의미]

      - Node Name : 추가할 MS가 어떤 노드에 소속될 지 정할 수 있습니다. 입력창 클릭 시 현재 도메인에 등록되어 있는 노드 리스트가 나오며 어떤 노드에서 MS 를 운용할 지 선택할 수 있습니다.

      - Name : 추가할 MS의 이름을 지정합니다. 기존 도메인에 이미 추가되어 있는 MS와 이름이 중복되어선 안됩니다.

      - Listen Address : 바인드를 시도할 IP 주소를 설정합니다. hosts 파일에 서버의 Hostname 이 매핑되어 있는 경우 Hostname 으로도 설정할 수 있습니다. MS 가 운용될 서버의 IP 또는 Hostname 을 설정하면 되며, 되도록 Hostname 설정을 권장합니다.

      - Listen Port : MS의 Base Port를 지정합니다. Base Port는 일반적으로 WebAdmin 접속 Port (adminServer 의 Base Port) 에서 10단위씩 늘려서 설정하는 것을 권장합니다. (예: WebAdmin 포트가 10000 인 경우, 각 노드별로 10010, 10020, 10030 순으로 설정)

 

MS 추가가 완료되면 Servers 목록에 새로 추가한 MS가 보입니다.

 

다음은 새로 추가한 MS 에 대한 세부 설정을 진행합니다.

추가한 server2 이름을 클릭하면  상단에 Basic, Resource, Engine 탭이 있습니다.

Basic 탭에서는 Engine 사용 여부(Web, EJB, JMS) 선택, Jvm Option 설정, DataSource 사용 설정, System Logging 설정 등을 설정할 수 있습니다.

Resource 탭에서는 Listener 추가 및 Listen-Address/Port 설정, Scheduler, Lifecycle Invocation 등을 설정할 수 있습니다.

Engine 탭에서는 Web, JMS, EJB 엔진에 대한 상세 설정을 할 수 있습니다.

 

우선, server2의 Basic 탭 설정을 진행하겠습니다. 

EJB, JMS Engine을 사용하지 않는 경우, Use Ejb Engine / Use Jms Engine 옵션의 체크를 해제합니다.(기본값 : true)

일반적으로 Web Engine 만을 사용하므로 불필요한 기능이 동작하지 않게 필요에 따라 비활성화 해주시면 됩니다.

 

JEUS가 운영되는 서버의 OS, JDK 버전에 맞게 Jvm Option을 설정합니다. 기존 MS를 복제해서 생성했으므로 기본 설정이 이미 되어 있을 수 있으나 로그파일명 등 수정이 필요하니 아래 가이드대로 설정이 제대로 되어있는지 점검해주시기 바랍니다.

Heap 메모리의 크기(Xms, Xmx)는 MS(컨테이너)에 배포하여 운영하는 Application 의 특성에 따라 결정해야 하므로 만약 메모리 크기를 지정하기 어려운 경우 기본 2GB 설정으로 운영 후 OutOfMemoryError 발생 등 필요에 따라 추가 증설하면 됩니다. 하지만 너무 크게 설정해서는 안됩니다. (최대 8GB 이하 권장)

 

    1) Sun/Oracle 계열 (OpenJDK 포함)

      ● JDK 8

-Xms2048m -Xmx2048m
-XX:MetaspaceSize=256m
-XX:MaxMetaspaceSize=512m
-verbose:gc
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps -XX:+PrintHeapAtGC
-Xloggc:/JEUS 로그 홈 절대경로/gclog/MS이름_gc.log
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/JEUS 로그 홈 절대 경로/dump/

        ※ 단, Heap 메모리(Xms, Xmx)를 4GB 이상 사용하려는 경우 -XX:+UseG1GC 옵션을 추가하는 것을 권장.

 

      ● JDK 11

-Xms2048m -Xmx2048m
-XX:MetaspaceSize=256m
-XX:MaxMetaspaceSize=512m
-XX:+UseG1GC
-verbose:gc
-Xlog:gc:file=/JEUS 로그 홈 절대 경로/gclog/MS이름_gc_%t.log:time,pid,level,tags
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/JEUS 로그 홈 절대 경로/dump/

 

    2) AIX

-Xms2048m -Xmx2048m
-Xgcpolicy:gencon
-verbose:gc
-Xverbosegclog:/JEUS 로그 홈 절대 경로/gclog/MS이름_gc_%pid.log

 

    3) HP

      ● JDK 8

-Xms2048m -Xmx2048m
-XX:MetaspaceSize=256m
-XX:MaxMetaspaceSize=512m
-Xverbosegc:file=/JEUS 로그 홈 절대 경로/gclog/MS이름_gc.log
-XX:ThreadDumpPath=/JEUS 로그 홈 절대 경로/dump/
-XX:HeapDumpPath=/JEUS 로그 홈 절대 경로/dump/
-XX:+HeapDumpOnOutOfMemoryError

 

      ● JDK 11

-Xms2048m -Xmx2048m
-XX:MetaspaceSize=256m
-XX:MaxMetaspaceSize=512m
-XX:+UseG1GC
-verbose:gc
-Xverbosegc:file=/JEUS 로그 홈 절대 경로/gclog/MS이름_gc.log
-XX:ThreadDumpPath=/JEUS 로그 홈 절대 경로/dump/
-XX:HeapDumpPath=/JEUS 로그 홈 절대 경로/dump/
-XX:+HeapDumpOnOutOfMemoryError

 

그 다음으로, Resource > Listener 탭에서 Listener를 설정합니다. BASE 리스너는 반드시 하나 존재해야 하며, 필요에 따라 리스너를 추가해주면 됩니다.

만약, Web 서버를 거치지 않고 JEUS 에서 직접 요청을 받아 처리를 하려면 http-listener 를 하나 추가해주어야 합니다.

 

http-listener 를 추가하려면 다음과 같이 추가해주면 됩니다.

Name 은 자유롭게 설정 가능하며 여기서는 http-server1로 설정했습니다.

Listen Address 는 모든 IP 로 서비스를 처리하려면 0.0.0.0 으로 처리, 특정 IP로만 서비스를 처리하려면 해당 IP 또는 Hostname 을 입력해줍니다.

Listen Port 는 원하는 포트를 지정해주면 됩니다. (단, Unix/Linux 에서 1024 이하 포트는 사용이 불가능하며, 포트가 중복되어선 안됩니다)

 

JMS 리스너는 jms를 사용하지 않으면 삭제해도 됩니다. 단, 삭제 시 해당 리스너를 참조하고 있는 jms 엔진을 먼저 제거해야 합니다.

Engine -> Jms Engine -> Service Config 로 이동합니다. internal을 선택하여 Listener Name 옵션 값을 빈값을 선택 후 확인 버튼을 클릭하여 참조 해제 후 다시 리스너 설정 메뉴로 돌아와 jms-internal1을 삭제하면 됩니다.

 

http-listener 를 추가한 경우, 해당 리스너로 유입된 요청을 처리하기 위한 Web Engine 설정이 추가로 필요합니다.

Engine -> Web Engine -> Web Connections로 이동합니다.

기존에 http1 이름을 가진 엔진이 존재하면 http1 이름을 클릭 수 Server Listener Ref 항목을 리스너 설정에서 추가했던 리스너 이름을 지정해주면 됩니다.

엔진이 없다면 우측 하단의 HTTP 버튼을 클릭하여 새로 추가합니다.

Name 은 자유롭게 설정 가능하며 여기서는 http1로 설정했습니다.

Server Listener Ref 는 리스너 설정에서 추가했던 리스너 이름으로 지정해주고, 하단의 Thread Pool Size 설정에서 필요한 Worker Thread 수량 만큼 Min/Max 수를 지정해줍니다. (일반적으로 10/20 개를 설정, 필요에 따라 증설)

 

설정 완료 후 좌측 메뉴바 하단의 Active Changes 버튼을 클릭하여 현재까지 변경된 내용을 적용합니다.

정상적으로 MS가 추가된 경우 아래와 같은 메시지가 출력됩니다.

 

모든 설정이 완료되었으므로 MS를 기동할 수 있습니다. Servers 메뉴에서 새로 추가한 MS 를 Start 버튼을 눌러 기동하면 됩니다.

 

만약, 정상적으로 기동되지 않는 경우, NodeManager가 기동 되어 있는지 확인합니다. NodeManager가 기동되어 있지 않으면 webadmin에서 MS가 기동되지 않습니다.

NodeManager 기동 여부는 WebAdmin 메인 화면의 우측에 Node 설정 버튼을 클릭하여 확인할 수 있습니다. 

노드 리스트에서 Under Control 값이 Y로 되어 있으면 NodeManager가 기동 되어 있는 상태이며, N 상태이면 서버에서 nmboot 명령으로 NodeManager 를 기동할 수 있습니다.

 

댓글