WebtoB는 Event Driven 방식으로 클라이언트의 요청을 처리하는데, 이때 Event를 처리하기 위해 사용하던 select() 함수 대신 성능상의 이점을 가진 epoll, devpoll, pollset 등의 OS에 특화된 Event 함수를 사용하도록 변경하였다.
Client 수가 많을 경우 더욱 효과적인 성능 확인이 가능하다.
Linux Kernel 2.4 , AIX 5.1 , AIX 5.2 에서는 이 기능을 사용할 수 없다.
JEUS로 전달되는 요청에 대해 서버들 간의 부하를 분배하는 기능을 추가하였다.
SVRGROUP 절에 LBServers, LBType, LBBackup, Server 절에 LBFactor의 옵션을 사용한다. 각 옵션의 설정 방법은 다음과 같다.
옵션 | 설정 방법 |
---|---|
LBServers | Load Balancing 서버를 설정한다. 콤마(,)를 이용하여 여러 개의 서버명을 설정할 수 있다. |
LBType | Dynamic과 Static 중 하나를 설정한다. (기본값: Dynamic) |
LBBackup | 백업 서버를 설정한다. |
LBFactor | 1 ~ 1000의 범위 내에서 설정한다. (기본값: 1) |
다음은 Load Balancing 설정 방법이다.
[예 13.1] Load Balancing 설정 방법
*SVRGROUP jsvg SvrType = JSV, LBServers = "jsv1, jsv2, jsv3", LBType = Static, LBBackup = "jsv4" *SERVER jsv1 SvgName = jsvg, MinProc = 10, MaxProc = 10, LBFactor = 10 jsv2 SvgName = jsvg, MinProc = 10, MaxProc = 10, LBFactor = 5 jsv3 SvgName = jsvg, MinProc = 10, MaxProc = 10, LBFactor = 1 jsv4 SvgName = jsvg, MinProc = 10, MaxProc = 10
JSV 및 Reverse Proxy Caching 기능을 추가하였다.
JEUS(JSV 및 Reverse Proxy)에서 처리하는 정적 페이지(non-Chunked 응답) Caching 기능을 추가하였다.
[예 13.2] JSV Caching 설정 방법
*Server
jsv1
SvgName = jsvg,
MinProc = 1,
MAXProc = 10 ,
Options = "+Cache"
Cache 기능을 변경하였다.
전체 Cache Memroy 설정(MaxCacheMemorySize) 및 Caching File Size 설정(CacheMaxFileSize)이 추가되었고, CacheEntry 기본값이 변경되었다. 각 설정에 대한 설명은 다음과 같다.
설정 | 설명 |
---|---|
Node.MaxCacheMemorySize | HTH별총 Cache 메모리 크기를 지정한다. |
Node.CacheMaxFileSize | Cache하는 파일의 최대 크기를 지정한다. WebtoB 4.1 SP4 Fix#0 이전 버전에서는 HttpOutBufSize보다 작은 파일을 Cache하였다. |
wsadmin.st -h | 현재 Cache된 크기 확인이 가능하다. |
st -h의 사용 중인 Cache Memory 결과 확인 방법은 다음과 같다.
[예 13.3] st -h의 사용 중인 Cache Memory 결과 확인 방법
HTH 0:
Requests = 0
Cache accesses = 0
Requests served by cache = 0
Conditional GET requests processed by HTH = 0
304 Not Modified responses by HTH = 0
Requests processed by HTH-internal HTMLS = 0
Requests that used asynchronous read threads = 0
Responses sent through sendfile = 0
SSL/TLS connections = 0
Regular non-SSL connections = 0
Pipelined requests = 0
Requests arrived early = 0
Request line charset converted = 0
Modified headers (AddResponse) = 0
Modified headers (AddResponse) buffer allocations = 0
Modified headers (AddRequest) = 0
Modified headers (AddRequest) buffer allocations = 0
Cache current memory use = 0MB
wsadmin의 si, st의 결과를 출력할 때 원하는 복수의 서버를 지정하여 출력할 수 있는 기능을 추가하였다.
[예 13.5] wsadmin si(st) 추가 기능 동작 방법
▨Wsadmin si(or st -v, st -p, st -s) svrname1,svrname2,.. ▨예제 $$1 qpsx1 (wsadm) [2012/04/09:13:49:32]: si html,MyGroup -------------------------------------------------------------------------------- hth svrname (svri) status count cqcnt aqcnt qpcnt emcnt rscnt rbcnt -------------------------------------------------------------------------------- 0 html ( 0) RDY 0 0 0 0 0 0 0 0 MyGroup ( 2) NRDY 0 0 0 0 0 0 0
ReverseProxy 요청이 Content-Length 해더가 없는 Http1.0일 경우, 응답 Header만 있고 Data(body)는 보내지 않는 문제가 발생하였다.
이 경우 데이터 응답을 보내도록 수정하였다.
WebtoB 4.1 SP4 Fix#0 이하 버전에서 발생하는 오류 현상이다.
관련이슈 : IMS-66007
요청을 JEUS에서 처리할 때, Client Timeout된 경우와 Client Connection Close된 경우의 규칙을 수정하였다.
수정 내용은 다음과 같다.
▨ running & client timeout accesslog : 500 status errorlog : Client timeout has expired.. syslog : Discard.. ▨ running & client timeout & notifyclientclose accesslog : 500 status errorlog : Client timeout has expired.. syslog : jsv reconnect.. ▨ running & client close accesslog : x errorlog : jsv: premature client close.. syslog : Discard.. ▨ running & client close & notifyclientclose accesslog : x errorlog : jsv: premature client close.. syslog : jsv reconnect.. ▨ queuing & client timeout accesslog : 500 status errorlog : Client timeout has expired.. syslog : x ▨ queuing & client close accesslog : x errorlog : jsv(QED): premature client close .. syslog : x
NotifyClientClose가 설정된 상태에서 HTTP1.0 요청 처리 후 JEUS와의 연결을 끊는 문제를 수정하였다.
WebtoB 4.1 SP2 Fix#0, WebtoB 4.1 SP4 Fix#0 버전에서 발생하는 오류 현상이다.
관련이슈 : IMS-66831