이 절에서는 서버 풀 구성에서 Instant Messaging을 배포할 때 조정 및 성능에 유용한 정보를 설명하며, 다음 절을 통해 가비지 컬렉션을 최적화하는 데 필요한 정보를 제공합니다.
이 정보는 Sun Java Communications Suite 5 Deployment Planning Guide의 내용과 함께 참조해야 합니다.
서버 풀 배포에서는 서버 풀의 각 Instant Messaging 서버를 동일하게 설정해야 합니다.
Instant Messaging 서버를 실행하려면 J2SE 버전 5를 사용하십시오. 이 버전은 보다 나은 성능을 제공하며 인체 공학적 기능을 지원하므로 명령줄을 통한 조정 작업이 필요하지 않습니다. 이 버전의 Java 사용에 대한 자세한 내용은 다음 문서를 참조하십시오.
Instant Messaging 서버는 iim.conf의 iim.jvm.maxmemorysize 매개 변수를 사용하여 할당할 최대 JVM 힙 크기를 설정합니다. 이 매개 변수의 기본값은 256MB이지만, 대용량 Instant Messaging 배포에서는 더 많은 메모리가 필요합니다. 서버 풀에서 Instant Messaging 서버에 할당할 메모리 크기는 지원해야 하는 동시 활성 사용자 수에 따라 다릅니다. 서버 풀의 각 Instant Messaging 서버는 256MB가 필요하고 각 연결된/활성 사용자에 대해 다음과 같은 매일 사용으로 65KB가 추가로 필요합니다.
두 개의 상태 확인 업데이트
다섯 번의 10분간 채팅
한 번의 15분간 여러 사용자 회의
한 번의 로그아웃 및 로그인
사용자별 추가 로드, 추가 Instant Messaging 서비스(예: 뉴스, 파일 전송 등) 사용, 기능(예: 메시지 필터, 아카이브, SSL 등) 사용 시에는 더 많은 메모리가 사용됩니다. 프로덕션 환경에 Instant Messaging을 배포하기 전에 일반적인 사용자 작업의 로드 프로필링을 수행해야 합니다. Instant Messaging 배포의 로드 프로필링에 대한 자세한 내용은 Sun 지원 서비스에 문의하십시오.
Instant Messaging은 클라이언트와 서버 간 요청 및 서버 간 요청을 처리하는 데 사용되는 스레드 풀의 크기와 동작을 조정하는 일련의 구성 옵션을 제공합니다. 관련 서비스 포트와 결합된 이러한 스레드 풀은 Instant Messaging 서버의 처리량을 향상시킬 수 있습니다.
옵션 이름 |
설명 |
기본값 |
---|---|---|
iim_server.maxthreads |
기본 스레드 풀의 최대 스레드 수 |
20 |
iim_server.threadpool |
독립 스레드 풀 목록 |
(모두 기본 스레드 풀 사용) |
iim_server.threadpool.capacity |
기본 스레드 풀의 용량(*) |
10 * maxthreads |
iim_server.threadpool.aaa.maxthreads |
명명된 스레드 풀 aaa에 대한 최대 스레드 수: maxthreads(aaa) |
4 |
iim_server.threadpool.aaa.capacity |
명명된 스레드 풀 aaa의 용량 |
10 * maxthreads(aaa) |
표 4–4 Sun Java Communications Suite의 정의된 스레드 풀
이름 |
사용 |
---|---|
s2s-in |
모든 서버 대 서버 인바운드 통신. 포트에서 서버 대 서버 통신을 허용하는 경우 이 스레드 풀이 사용됩니다. |
s2s-out |
모든 서버 대 서버 아웃바운드 통신. 포트에서 서버 대 서버 통신을 허용하는 경우 이 스레드 풀이 사용됩니다. |
s2s |
모든 서버 대 서버 통신. s2s-in과 s2s-out의 통합 |
서비스 포트 구성에 설명된 대로 연관된 서버 전용 서비스 포트에서 정의된 스레드 풀을 지정하고 사용할 수 있습니다. iim.conf에서 스레드 및 포트 구성을 편집합니다. 스레드 및 포트 구성을 변경한 후에는 서버를 다시 시작해야 합니다.
스레드 풀의 용량이 초과하면 표준 오류 메시지가 출력됩니다. Instant Messaging 서버는 요청 수가 스레드 풀의 용량 값보다 작을 때까지 스레드 풀에 대한 추가 요청을 승인하지 않습니다. 서버 풀 환경에서 이와 같은 상황이 발생하면 다음 작업을 수행해야 합니다.
스레드 풀의 용량 늘리기
정의된 스레드 풀 지정
스레드 풀의 maxthreads 수 조정
서버 전용 서비스 포트 사용
메모리 늘리기
사용자를 서버 풀에 보다 효율적으로 배포
!s2s thread pool iim_server.threadpool=s2s-in iim_server.threadpool.s2s-in.maxthreads=5 |
이 절에서는 여러 가지 서비스 포트 구성 옵션에 대해 설명합니다.
옵션 |
정의 |
기본값 |
---|---|---|
iim_server.useport |
일반 포트(StartTLS 허용)를 엽니다. |
true |
iim_server.usesslport |
SSL 포트(협상 불가 TLS)를 엽니다. |
false |
iim_server.usemuxport |
멀티플렉서 포트를 엽니다. |
true |
iim_server.port |
일반 포트 목록 |
5269 |
iim_server.sslport |
SSL 포트 목록 |
5270 |
iim_mux.serverport |
멀티플렉서 포트 목록 |
45222 |
iim_server.port.port.sndbuf |
소켓 send 버퍼 크기 |
없음 |
iim_server.port.port.rcvbuf |
소켓 recv 버퍼 크기 |
없음 |
iim_server.port.port.interface |
바인드할 특정 네트워크 인터페이스 목록 |
없음(임의로 지정) |
iim_server.port.port.protocol |
이 포트에 허용된 프로토콜 목록(client, server, component, peer) |
all/any |
iim_server.port.port.nodelay |
Nagles 알고리즘을 사용합니다. |
false |
수신 버퍼 크기의 포트 전송 크기를 조정하여 서비스 포트의 처리량을 향상시킬 수 있습니다.
iim_server.port = 5269, 45269, 15222 iim_server.port.5269.protocol = server iim_server.port.45269.protocol = peer, component iim_server.port.45269.sndbuf= 512000 iim_server.port.45269.recvbuf= 512000 iim_server.port.15222.protocol = client |
(문제 번호: 6279277) JRE 1.4.2 버전과 1.5 버전의 가비지 컬렉션 처리 방법의 차이로 인해 서버의 호스트에서 버전 1.4.2와 함께 기본 가비지 컬렉터를 사용할 경우 성능이 떨어질 수 있습니다. 이 문제를 해결하려면 JRE 1.5 버전으로 업그레이드하거나 서버를 호출할 때 다음 명령줄 옵션을 포함시킬 수 있습니다.
-XX:+UseParallelGC |
JRE 가비지 컬렉션에 대한 자세한 내용은 다음을 참조하십시오.