이 절에서는 서버 풀 구성에서 Instant Messaging 배포 시 조정 및 성능에 유용한 정보 및 다음 절의 가비지 컬렉션을 최적화하는 데 유용한 정보에 대해 설명합니다.
이 정보는 Sun Java System Communications Services 6 2005Q4 Deployment Planning Guide와 함께 사용해야 합니다.
서버 풀 배포 시 서버 풀에 각 Instant Messaging 서버를 동일하게 설치해야 합니다.
J2SE 버전 5를 사용하여 Instant Messaging 서버를 실행하십시오. 더 우수한 성능을 제공할 뿐만 아니라 인체 공학적 기능을 지원하므로 명령줄을 조정할 필요가 없습니다. 이 Java 버전 사용에 관한 자세한 내용은 다음 문서에서 찾을 수 있습니다.
Instant Messaging 서버는 iim.conf의 iim.jvm.maxmemorysize 매개 변수를 사용하여 할당할 JVM 힙의 최대 크기를 설정합니다. 이 매개 변수의 기본값은 256MB이지만 대용량 Instant Messaging을 배포하려면 더 많은 메모리가 필요합니다. 서버 풀의 Instant Messaging 서버에 할당할 메모리는 지원해야 하는 동시 활성 사용자 수에 따라 결정됩니다. 서버 풀의 각 Instant Messaging 서버는 각각의 연결된 사용자/활성 사용자가 다음과 같은 일일 사용에 필요로 하는 65KB와 함께 256MB가 필요합니다.
2회 업데이트
10분 동안 5번의 채팅
15분 동안 1회의 다중 사용자 회의
1회 로그아웃 및 로그인
사용자별 추가 로드, 뉴스나 파일 전송과 같은 추가 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) |
표 3 Instant Messaging에 대해 정의된 스레드 풀
이름 |
용도 |
---|---|
s2s-in |
모든 서버-서버 인바운드 통신. 포트에서 서버-서버가 허용된 경우 이 스레드 풀이 사용됩니다. |
s2s-out |
모든 서버-서버 아웃바운드 통신. 포트에서 서버-서버가 허용된 경우 이 스레드 풀이 사용됩니다. |
s2s |
모든 서버-서버 통신. s2s-in 및 s2s-out의 조합입니다. |
정의된 스레드 풀은 서비스 포트 구성에서 설명한 대로 연관된 서버 전용 서비스 포트에서 지정 및 사용할 수 있습니다.
스레드 풀 용량이 초과되면 표준 오류 메시지가 출력됩니다. 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 버퍼 크기 |
none |
iim_server.port.port .rcvbuf |
소켓 recv 버퍼 크기 |
none |
iim_server.port.port .interface |
바인드할 특정 네트워크 인터페이스 목록 |
none(any를 나타냄) |
iim_server.port.port .protocol |
이 포트에 허용된 프로토콜 목록(클라이언트, 서버, 구성 요소, 피어) |
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) 1.4.2 및 1.5 버전에서의 가비지 컬렉션에 대한 JRE 처리 방식이 달라 서버 호스트에서 1.4.2 버전으로 기본 가비지 수집기를 사용할 때 성능이 다소 저하될 수 있습니다. 이 문제를 해결하기 위해 JRE를 1.5 버전으로 업그레이드하거나 서버 호출 시 다음 명령줄 옵션을 포함할 수 있습니다.
-XX:+UseParallelGC |
JRE 가비지 컬렉션에 대한 자세한 내용은 다음을 참조하십시오.