Sun Java System Calendar Server 6 2005Q4 관리 설명서

21장 Calender Server 성능 조정

Calendar Server의 성능을 향상시키려면 다음 옵션을 사용할 것을 고려하십시오.

LDAP Directory Server 색인

Calendar Server가 LDAP Directory Server에 액세스할 때 성능을 향상시키려면 다음 속성을 위한 LDAP 구성 파일에 색인을 추가합니다.

icsCalendar

이 속성은 달력 사용자 또는 자원의 기본 달력을 검색하는 데 사용됩니다. 존재(pres), 일치( eq) 및 하위 문자열(sub) 색인 유형을 지정합니다.

icsCalendarOwned

이 속성은 사용자가 소유한 다른 달력을 검색하는 데 사용됩니다. 존재(pres), 일치(eq) 및 하위 문자열(sub) 색인 유형을 지정합니다. DWP 환경의 달력 검색 성능 향상을 참조하십시오.

mail, mailAlternateAddress

이러한 속성은 사용자의 기본 및 대체 전자 메일 주소를 지정합니다. 사용자 및 자원 만들기 Calendar Server 유틸리티(csuser enable)를 참조하십시오.

디렉토리 서버 색인 추가에 대한 자세한 내용은 다음 위치의 Directory Server 설명서를 참조하십시오.

http://docs.sun.com/coll/1316.1http://docs.sun.com/coll/1404.1

DWP 환경의 달력 검색 성능 향상

DWP 환경에 있는 경우, 즉 달력 데이터베이스가 여러 백엔드 서버 전체에 배포되었다면 달력 데이터베이스에서 달력 검색에 시간이 많이 걸릴 수 있습니다. 먼저 LDAP 항목을 보고 달력이 상주하는 DWP 호스트를 직접 찾는 것이 더 빠를 수 있습니다.

이 절은 다음 내용으로 구성되어 있습니다.

Procedure달력 검색에서 LDAP를 보도록 활성화

달력 검색에서 먼저 LDAP 디렉토리를 찾고 다음으로 달력 데이터베이스를 찾으려면 다음 단계를 수행합니다.

단계
  1. ics.conf 파일에서 service.calendarsearch.ldap 매개 변수를 편집하고 아래와 같이 이 매개 변수를 기본값인 “yes”로 설정합니다.

    service.calendarsearch.ldap="yes"

  2. Calendar Service를 다음과 같이 다시 시작합니다.

    start-cal


    주 –

    공용 달력에 익명 액세스를 허용하는 경우 달력 검색에서 LDAP를 보지 못하게 할 수도 있습니다. 실제로 Communications Express는 매개변수 값을 “no”로 예상합니다.


Procedure색인으로 검색 성능 개선

단계
  1. 달력 검색 성능이 색인으로 개선될 수 있는지 확인하려면 다음 LDAP 명령을 시도하십시오.


    ldapsearch -b "base" "(&(icscalendarowned=*user*)
       (objectclass=icsCalendarUser))"

    여기서 base는 Calendar Server에 대한 사용자 및 자원 데이터가 있는 LDAP 기본 DN이고 user는 최종 사용자가 검색 대화 상자에 입력할 수 있는 값입니다.

    60,000개의 항목을 테스트한 결과, 위의 검색은 icsCalendarOwned에 색인이 없는 경우 약 50-55초 가량 걸립니다. 그러나 색인을 사용하면 1-2초 밖에 걸리지 않습니다.

  2. comm_dssetup.pl을 실행하여 적절한 LDAP 속성 또는 최소한 icsCalendarOwned를 색인화합니다.

    comm_dssetup.pl은 다양한 방식으로 성능을 개선하기 위해 이 속성과 다른 속성을 색인화합니다. comm_dssetup.pl을 실행하지 않거나 실행했지만 색인화를 수행하지 않은 경우, 다시 유틸리티를 실행하여 색인화를 수행하거나 Directory Server 도구를 사용하여 색인화를 수행할 수 있습니다.

    comm_dssetup.pl로 색인화를 수행하는 방법에 대한 자세한 내용은 속성 색인을 참조하십시오.

    디렉토리 서버 색인 추가에 대한 자세한 내용은 다음 위치의 Directory Server 설명서를 참조하십시오.

    http://docs.sun.com/coll/1316.1http://docs.sun.com/coll/1404.1

와일드카드 검색을 비활성화하여 달력 검색 성능 개선

기본적으로 와일드카드 검색은 Calendar Server에서 비활성화됩니다. 즉, 그래픽 사용자 인터페이스를 사용하여 달력을 검색할 때 또는 사용자 정의 인터페이스에서 search_calprops.wcap을 실행하는 경우 WCAP 명령으로 전달되는 검색 문자열과 정확하게 일치하는 값을 검색합니다.

ics.conf 파일에서 다음 행의 주석을 취소하여 와일드카드 검색을 활성화한 경우(시작 부분에서 느낌표(“!”) 제거) 성능에 부정적인 영향을 줄 수 있습니다.

!service.calendarsearch.ldap.primaryownersearchfilter = "(&(|(uid=*%s*)(cn=*%s*))(objectclass=icsCalendarUser))"

성능에 대한 와일드카드 검색의 영향을 테스트하려면 앞에 느낌표(“!”)를 삽입해서 행을 다시 주석으로 처리합니다.

CLD 플러그 인 성능 향상

시스템이 달력 데이터베이스로부터 달력에 액세스하면 어떤 백엔드 시스템이 해당 사용자의 달력을 저장하는지 판단해야 합니다. 적절한 백엔드 시스템을 찾기 위해 시스템은 사용자의 항목에 대해 LDAP 디렉토리를 검색하고 icsDWPHost 속성을 선택합니다. 이 검색에는 시간이 걸리며 달력 데이터에 대한 모든 액세스에서 수행되어야 합니다. 모든 사용자 세션으로 인해 데이터베이스 액세스가 자주 발생하고 그로 인해 LDAP 검색이 자주 일어날 수 있습니다. 시간을 절약하고 성능을 개선하려면 ics.conf 파일을 다음과 같이 편집하여 OLD 데이터 캐시를 활성화합니다.

caldb.cld.cache.enable="yes"

LDAP 데이터 캐시는 사용자 아이디 및 해당 icsDWPHost 속성을 저장합니다. LDAP에서 사용자 항목을 검색하기 전에 시스템은 사용자 아이디가 있는지 캐시를 확인합니다. 캐시에 있다면 저장된 icsDWPHost 속성에서 백엔드 호스트 이름을 선택합니다. 캐시에 있지 않는 경우 시스템은 LDAP 검색을 수행하고 사용자 아이디와 속성을 OLD 캐시에 복사합니다. 이제부터는 캐시에서 사용자 아이디를 찾기 때문에 사용자 달력 데이터 액세스가 더 빨라집니다.

LDAP 데이터 캐시의 성능 개선

LDAP 데이터 캐시가 활성화되면 ics.conf 매개 변수를 사용하여 조정하고 다음 표에 나오는 하나 이상의 매개 변수를 조정할 수 있습니다.


주 –

LDAP 데이터 캐시는 기본적으로 활성화됩니다. 다음을 설정하여 비활성화할 수 있습니다. local.ldap.cache.enable="no"


표 21–1 LDAP 데이터 캐싱을 사용자 정의하기 위해 사용되는 ics.conf 매개 변수

매개 변수 

설명값 

local.ldap.cache

.checkpointinterval

검사점 사이에 검사점스레드가일시정지하는시간(초단위)입니다. 기본값은 “60”입니다.

높은 활동 LDAP에서 캐시를 가능한 최신으로 유지하기 위해 간격을 줄일 수 있습니다. 또한 캐시를 자주 갱신할수록 시스템 오버헤드가 많이 발생합니다. 

local.ldap.cache.

circularlogging

처리된 후 LDAP 데이터 캐시 데이터베이스 로그 파일을 제거할지 지 정합니다. 기본값은 “yes”입니다.

이전 로그 파일을 제거할 사용자 정의 정리 루틴이 없다면 이 매개 변수를 바꾸지 마십시오. 

local.ldap.cache.

logfilesizemb

검사점 파일의 최대 크기를 MB 단위로 지정합니다. 기본값은 "10”MB입니다.

높은 활동 LDAP가 있는 경우 이 파일은 검사점 간격이 끝나기 전에 가득 찰 수 있습니다. 경험상 로그의 실제 크기와 가까운 숫자로 값을 설정해 보십시오. 

local.ldap.cache.

maxthreads

LDAP 데이터 캐시 데이터베이스를 위한 스레드의 최대 수를 지정합니다. 기본값은 “1000”입니다.

높은 활동 LDAP에서는 스레드의 수를 늘려야 하는 경우가 있습니다. CUP 사용률도 증가할 수 있습니다. LDAP 활동이 최소인 경우에만 스레드의 수를 줄입니다. 

local.ldap.cache.

mempoolsizemb

공유 메모리의 크기를 MB 단위로 지정합니다. 공유메모리의크기를메가바이트단위로지정합니다기본값은 “4”MB입니다.

local.ldap.cache.

entryttl

LDAP 데이터 캐시 항목을 위한 “지속 시간”(TTL)을 초 단위로 지정합니다. 기본값은 “3600”초(1시간)입니다.

캐시가 너무 빨리 차게 되면(높은 활동), TTL 시간을 줄일 수 있습니다. 하지만 이렇게 하면 LDAP 데이터베이스 액세스 횟수가 전반적으로 줄어들어 시스템 다운도 줄어들 수 있습니다. 

local.ldap.cache.

cleanup.interval

각 캐시 데이터베이스 정리 사이의 간격을 초 단위로 지정합니다. 기본값은 “1800”초(30분)입니다.

시스템은 만료 항목을 제거합니다. 시간 간격은 항목 TTL 시간과 같을 필요는 없습니다. 하지만 이를 동기화하면 더욱 효율적일 수 있습니다. 

local.ldap.cache.

stat.enable

LDAP 데이터 캐시에 대한 액세스 로그 여부 및 로그 파일의 통계 인쇄 여부를 지정합니다. 기본값은 “no”입니다.

성능 개선을 위해 디버그 모드에서만 사용하십시오. 

local.ldap.cache.

stat.interval

각 통계 보고서가 로그 파일에 기록되는 간격을 초 단위로 지정합니 다. 기본값은 “1800”초(30분)입니다.

이것은 local.ldap.cache.stat.enable이 활성화되었을 때만 활성입니다. 간격을 줄이면 문제를 정확히 파악하는 데 도움이 됩니다. 간격을 늘리면 시스템 로드가 줄어듭니다. 


주 –

Communications Express는 데이터 캐싱이 사용 불가능할 것으로 예상합니다.


LDAP SDK 캐시 조정

항목이 캐시에서 얼마나 오래 머무를 것인지 그리고 캐시가 얼마나 커질 수 있는지 조정하는 두 매개 변수가 있습니다.

캐시를 조정하려면 다음 표에 표시되는 매개 변수 중 하나 이상을 편집합니다.

표 21–2 LDAP SDK 캐시를 구성하는 ics.conf 매개 변수

매개 변수 

설명 및 기본값 

service.ldapmemcachettl

현재 구현되지 않은 매개 변수입니다. ldap_cache 디렉토리의 내용을 수동으로 제거한 후 Calendar Server를 다시 시작해야 합니다.

service.ldapmemcache"yes"이면 이 매개 변수는 항목을 캐시할 수 있는 최대 시간(초)을 설정하는 데 사용됩니다. 이 값이 “0”이면 한 항목을 캐시에 저장할 수 있는 시간 제한이 없습니다. 기본값은 “30”입니다.

service.ldapmemcachesize

service.ldapmemcache"yes"인 경우, 이 매개 변수는 캐시가 사용할 최대 메모리 양(바이트)을 설정하는데 사용됩니다. “0”이면 캐시에는 크기 제한이 없습니다. 기본값은 “131072”입니다.

자동 백업 조정

디스크에서 보관하는 백업의 수 및 가용 디스크 공간을 초과하지 않을 필요성 사이에 균형점을 찾아야 합니다. 아카이브 및 핫 백업이 차지하는 디스크 공간 관리에 도움이 되도록 한번에 몇 개의 백업 복사본을 유지할 수 있는지 그리고 다른 복사본의 정리를 트리거할 디스크 공간 임계값이 있는지 결정하는 다양한 ics.conf 매개 변수의 설정을 바꿀 수 있습니다.

각 백업 유형, 즉 아카이브 및 핫 백업에 대해 조정할 수 있는 세 가지 유형의 매개 변수가 있습니다.

Calendar Server는 디스크 공간의 임계값을 초과하지 않으면서 최대 일 수 동안 백업을 유지합니다. 그러므로 현재 백업으로 디스크 사용량이 임계값을 초과한다면 시스템은 가장 오래된 백업 복사본을 제거하고 디스크 공간이 임계값 아래로 떨어지는지 확인합니다. 다른 백업 복사본을 제거하여디스크 백업 수가 최소 백업 복사본 수 이하로 줄어들거나 디스크 사용량이 임계값 아래로 줄어들 때까지 오래된 백업 복사본을 계속 제거합니다.

그러므로 임계값 매개 변수로 백업의 디스크 공간 사용량을 관리할 수 있습니다. 그리고 반대로 허용된 복사본 수 및 디스크 공간의 양을 조정하여 디스크에 보관하는 백업 복사본 수를 관리할 수 있습니다.

다음 표에서는 디스크에 유지된 백업의 수와 디스크 공간을 제어하는 ics.conf 매개 변수를 나열합니다.

표 21–3 디스크에 유지할 백업의 수를 설정하기 위해 사용되는 ics.conf 매개 변수

ics.conf 매개 변수 

기본 설정 

설명 

caldb.berkeleydb.hotbackup.mindays

디스크에 핫 백업이 보관되는 최소 일 수 

caldb.berkeleydb.hotbackup.maxdays

디스크에 핫 백업이 보관되는 최대 일 수 

caldb.berkeleydb.hotbackup.threshold

70 

핫 백업에 사용되는 디스크 공간의 백분율초과되면 가장 오래된 복사본 제거를 트리거합니다. 

caldb.berkeleydb.archive.mindays

디스크에 아카이브 백업이 보관되는 최소 일 수 

caldb.berkeleydb.archive.maxdays

디스크에 아카이브 백업이 보관되는 최대 일 수 

caldb.berkeleydb.archive.threshold

70 

아카이브 백업에 사용되는 디스크 공간의 백분율초과되면 가장 오래된 복사본 제거를 트리거합니다. 

여러 CPU에 걸쳐 로드 균형 조정 사용

서버에 여러 개의 CPU가 있는 경우 Calendar Server는 기본적으로 HTTP 서비스(cshttpd 프로세스) 및 분산 데이터베이스 서비스(csdwpd 프로세스)를 분산시킵니다.

service.http.numprocessesservice.dwp.numprocesses 매개 변수는 각 서비스를 위해 실행되는 실제 프로세스 수를 결정합니다. 기본적으로 이 두 매개 변수는 설치하는 동안 서버의 CPU 수로 설정되지만 값을 재설정할 수 있습니다. 예를 들어, 서버에 8개의 CPU가 있지만 4개의 CPU에서만 cshttpdcsdwpd 프로세스를 실행하려면 매개 변수를 다음과 같이 설정합니다.

service.http.numprocesses="4"
 service.dwp.numprocesses="4"

로드 균형 조정을 비활성화하려면 service.loadbalancing 매개 변수를 ics.conf 파일에 추가하고 “no”로 설정합니다. 변경 내용을 적용하려면 Calendar Server를 다시 시작합니다.

시간 초과 값 사용

Calendar Server 성능은 다양한 ics.conf 매개 변수의 시간 초과 값을 사용하여 조정할 수 있습니다.

다음과 같은 시간 초과 유형이 있습니다.

ics.conf 매개 변수 편집에 대한 자세한 내용은 ics.conf 구성 파일 편집을 참조하십시오.

csadmind의 시간 초과 값

다음 표에서는 관리(csadmin) 서비스에서 사용하는 ics.conf 파일의 Calendar Server 시간 초과 매개 변수를 설명합니다.

표 21–4 관리 서비스(csadmin)의 HTTP 시간 초과 값

매개 변수 

설명 

service.admin.idletimeout

csadmind 서비스가 유휴 HTTP 연결 시간 초과까지 대기하는 시간을 초 단위로 지정합니다. 

기본값은 120초(2분)입니다. 

service.admin.resourcetimeout

csadmind 서비스가 자원 달력에 대한 HTTP 세션 시간 초과까지 대기하는 시간을 초 단위로 지정합니다. 

기본값은 900초(15분)입니다. 

service.admin.sessiontimeout

csadmind 서비스가 HTTP 세션 시간 초과까지 대기하는 시간을 초 단위로 지정합니다. 

기본값은 1800초(30분)입니다. 

최종 사용자의 HTTP 시간 초과 값

다음 표에서는 최종 사용자에게 적용되는 ics.conf 파일의 Calendar Server HTTP 시간 초과 매개 변수를 설명합니다.

표 21–5 최종 사용자용 ics.conf의 HTTP 시간 초과 값(cshttpd 서비스)

매개 변수 

설명 

service.http.idletimeout 

cshttpd 서비스가 유휴 HTTP 연결 시간 초과까지 대기하는 시간을 초 단위로 지정합니다.

기본값은 "120"초(2분)입니다.

service.http.resourcetimeout 

cshttpd 서비스가 달력 자원의 HTTP 세션 시간 초과까지 대기하는 시간을 초 단위로 지정합니다.

기본값은 "900"초(15분)입니다.

service.http.sessiontimeout 

cshttpd 서비스가 HTTP 세션 시간 초과까지 대기하는 시간을 초 단위로 지정합니다.

기본값은 "1800"초(30분)입니다.

GSE 대기열 시간 초과 값

다음 ics.conf 파일 매개 변수는 Calendar Server가 그룹 예약 엔진(GSE) 대기열에서 들어오는 작업을 스캔하기 전에 기다리는 시간을 초 단위로 지정합니다.

gse.belowthresholdtimeout="3"

할당된 최대 스레드보다 많은 작업이 대기열에 있으면 마지막 스레드는 항상 대기열을 다시 스캔합니다. 따라서 이러한 설정은 작업의 수가 할당된 최대 스레드보다 적을 때만 적용됩니다.

기본값은 "3"입니다. 이 숫자를 증가시키면 서버가 대기열을 검색하는 빈도가 감소하고 전체적인 성능이 향상될 수 있습니다. 하지만 이벤트의 크기가 증가하여 대기열이 너무 커지면 시간을 줄여 대기열의 처리 속도를 높일 수 있습니다. 그러면 전반적인 성능은 저하되지만 이벤트 업데이트 속도는 빨라집니다.