Sun Java Communications Suite 5 릴리스 노트

Instant Messaging의 성능, 확장성 및 크기 조정 고려 사항

이 절에서는 서버 풀 구성에서 Instant Messaging을 배포할 때 조정 및 성능에 유용한 정보를 설명하며, 다음 절을 통해 가비지 컬렉션을 최적화하는 데 필요한 정보를 제공합니다.

이 정보는 Sun Java Communications Suite 5 Deployment Planning Guide의 내용과 함께 참조해야 합니다.


주의 – 주의 –

서버 풀 배포에서는 서버 풀의 각 Instant Messaging 서버를 동일하게 설정해야 합니다.


Instant Messaging 서버 메모리 조정

Instant Messaging 서버를 실행하려면 J2SE 버전 5를 사용하십시오. 이 버전은 보다 나은 성능을 제공하며 인체 공학적 기능을 지원하므로 명령줄을 통한 조정 작업이 필요하지 않습니다. 이 버전의 Java 사용에 대한 자세한 내용은 다음 문서를 참조하십시오.

Instant Messaging 서버는 iim.confiim.jvm.maxmemorysize 매개 변수를 사용하여 할당할 최대 JVM 힙 크기를 설정합니다. 이 매개 변수의 기본값은 256MB이지만, 대용량 Instant Messaging 배포에서는 더 많은 메모리가 필요합니다. 서버 풀에서 Instant Messaging 서버에 할당할 메모리 크기는 지원해야 하는 동시 활성 사용자 수에 따라 다릅니다. 서버 풀의 각 Instant Messaging 서버는 256MB가 필요하고 각 연결된/활성 사용자에 대해 다음과 같은 매일 사용으로 65KB가 추가로 필요합니다.

사용자별 추가 로드, 추가 Instant Messaging 서비스(예: 뉴스, 파일 전송 등) 사용, 기능(예: 메시지 필터, 아카이브, SSL 등) 사용 시에는 더 많은 메모리가 사용됩니다. 프로덕션 환경에 Instant Messaging을 배포하기 전에 일반적인 사용자 작업의 로드 프로필링을 수행해야 합니다. Instant Messaging 배포의 로드 프로필링에 대한 자세한 내용은 Sun 지원 서비스에 문의하십시오.

Instant Messaging 스레드 풀링 및 서비스 포트 구성

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)

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 서버는 요청 수가 스레드 풀의 용량 값보다 작을 때까지 스레드 풀에 대한 추가 요청을 승인하지 않습니다. 서버 풀 환경에서 이와 같은 상황이 발생하면 다음 작업을 수행해야 합니다.


예 4–1 정의된 스레드 풀을 사용하여 Instant Messaging의 서버 대 서버 인바운드 통신을 위해 5개 스레드 예약


!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 

수신 버퍼 크기의 포트 전송 크기를 조정하여 서비스 포트의 처리량을 향상시킬 수 있습니다.


예 4–2 Instant Messaging의 서비스 포트 구성


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 

Instant Messaging의 가비지 컬렉션 조정

(문제 번호: 6279277) JRE 1.4.2 버전과 1.5 버전의 가비지 컬렉션 처리 방법의 차이로 인해 서버의 호스트에서 버전 1.4.2와 함께 기본 가비지 컬렉터를 사용할 경우 성능이 떨어질 수 있습니다. 이 문제를 해결하려면 JRE 1.5 버전으로 업그레이드하거나 서버를 호출할 때 다음 명령줄 옵션을 포함시킬 수 있습니다.


-XX:+UseParallelGC

JRE 가비지 컬렉션에 대한 자세한 내용은 다음을 참조하십시오.