Identity Management에서 성능 튜닝


Red Hat Enterprise Linux 8

보다 나은 성능을 위해 Directory Server,ECDHE 및 SSSD와 같은 IdM 서비스 최적화

Red Hat Customer Content Services

초록

Red Hat은 대부분의 배포에서 제대로 수행하기 위해 IdM(Identity Management)을 조정합니다. 그러나 특정 시나리오에서는 복제 계약, 디렉터리 서버, KDC(Kerberos Key Distribution Center) 또는 SSSD(System Security Services Daemon)와 같은 IdM 구성 요소를 조정하는 것이 유용할 수 있습니다.

Red Hat 문서에 관한 피드백 제공

문서 개선을 위한 의견에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.

Jira를 통해 피드백 제출 (등록 필요)

  1. Jira 웹 사이트에 로그인합니다.
  2. 상단 탐색 모음에서 생성 을 클릭합니다.
  3. 요약 필드에 설명 제목을 입력합니다.
  4. 설명 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
  5. 대화 상자 하단에서 생성 을 클릭합니다.

1장. IdM 튜닝 시 중요한 고려 사항

ID 관리의 구성 요소 서비스는 대부분의 배포에 최적으로 작동하도록 조정됩니다. 시스템 관리자는 특정 환경의 요구에 맞게 IdM 서비스의 성능을 조정해야 할 수 있습니다.

중요한 고려 사항

  • 각 IdM 배포는 하드웨어, 소프트웨어, 네트워킹, 데이터, 워크로드 및 기타 여러 요인의 고유한 조합입니다. 하나의 환경에 도움이 되는 조정은 다른 환경에 해가 될 수 있습니다.
  • 성능 튜닝은 반복적이고 실험적인 프로세스입니다. Red Hat은 한 번에 하나의 변수만 조정하고 환경에 미치는 영향을 모니터링할 것을 권장합니다. 하나의 변수로 원하는 결과를 얻은 후 다음 변수를 조정하면서 이전 조정의 성능을 계속 모니터링합니다.

2장. 하드웨어 권장 사항

RAM은 적절한 크기 조정에 가장 중요한 하드웨어 기능입니다. 시스템에 사용 가능한 RAM이 충분한지 확인합니다. 일반적인 RAM 요구 사항은 다음과 같습니다.

  • 10,000명의 사용자 및 100개의 그룹: 최소 4GB의 RAM 및 4GB 스왑 공간
  • 사용자 100,000명 및 50,000개 그룹의 경우: 최소 16GB의 RAM 및 4GB의 스왑 공간

대규모 배포의 경우 대부분의 데이터가 캐시에 저장되므로 디스크 공간을 늘리는 것보다 RAM 증가가 더 효율적입니다. 일반적으로 RAM을 추가하면 캐싱으로 인해 대규모 배포를 위해 성능이 향상됩니다. 가상화된 환경에서 메모리 볼링을 비활성화하거나 게스트 IdM 서버에 전체 RAM을 예약해야 합니다.

참고

기본 사용자 항목 또는 인증서가 있는 간단한 호스트 항목은 약 5-​10 kB)입니다.

3장. IdM 서버 성능 권장 사항

안정적인 성능을 보장하기 위해 IdM(Identity Management)은 IdM 서버를 추가하거나 등록할 수 있는 최대 사용자 및 클라이언트 수에 제한을 적용합니다.

Expand
표 3.1. IdM 작업의 제한
동작설명숫자

클라이언트 등록

등록 실패 전에 IdM 서버에 동시에 등록할 수 있는 IdM 클라이언트의 최대 수입니다.

130

사용자 추가

사용자를 추가하지 못하기 전에 다른 IdM 클라이언트의 ipa user-add[] 명령을 사용하여 동시에 추가할 수 있는 최대 사용자 수입니다.

IdM API batch 명령을 사용하여 동일한 시간에 더 많은 사용자를 추가할 수 있습니다. 사용자 100명의 배치로 사용자를 추가하는 것이 좋습니다.

325

클라이언트 인증

인증이 실패하기 전에 동시에 인증할 수 있는 IdM 클라이언트의 최대 수입니다.

800

사용자 그룹에 멤버 추가

그룹에 새 멤버를 추가하는 데 시간을 초과하지 않고 추가할 수 있는 권장 멤버 수입니다. IdM에는 그룹에 멤버를 추가하기 위한 일반 시간 프레임으로 2초 규칙이 있습니다. 멤버를 더 추가할 수 있지만 작업 시간이 점진적으로 확장됩니다.

1500

4장. IdM에서 페일오버, 로드 밸런싱 및 고가용성

IdM(Identity Management)에는 IdM 클라이언트에 대한 페일오버 메커니즘이 내장되어 있으며 IdM 서버의 부하 분산 및 고가용성 기능이 있습니다.

클라이언트 측 장애 조치 기능

기본적으로 IdM 클라이언트의 SSSD 서비스는 클라이언트가 연결할 최상의 IdM 서버를 자동으로 결정할 수 있도록 SRV(DNS 서비스) 리소스 레코드를 사용하도록 구성됩니다.

기본 및 백업 서버 구성

서버 확인 동작은 /etc/sssd/sssd.conf 파일의 ipa_server 매개변수에서 _srv_ 옵션에 의해 제어됩니다.

예: /etc/sssd/sssd.conf

[domain/<idm_domain_name>]
id_provider = ipa
ipa_server = _srv_, <primary_idm_server1>, <primary_idm_server2>
ipa_backup_server = <backup_idm_server1>, <backup_idm_server2>
...
Copy to Clipboard Toggle word wrap

_srv_ 옵션을 지정하면 SSSD에서 기본적으로 정렬된 IdM 서버 목록을 검색합니다. 기본 서버가 오프라인 상태가 되면 IdM 클라이언트의 SSSD 서비스가 사용 가능한 다른 IdM 서버에 자동으로 연결됩니다.

기본 서버는 ipa_server 매개변수에 지정됩니다. SSSD는 기본 서버에 먼저 연결하고 사용할 수 있는 기본 서버가 없는 경우에만 백업 서버로 전환하려고 합니다.

_srv_ 옵션은 백업 서버에서 지원되지 않습니다.

참고

SSSD는 DNS 서버의 SRV 레코드를 쿼리합니다. 기본적으로 SSSD는 다른 DNS 서버를 쿼리하기 전에 DNS 확인자에서 응답을 6 초 동안 기다립니다. 모든 DNS 서버에 연결할 수 없는 경우 도메인은 오프라인 모드에서 계속 작동합니다. dns_resolver_timeout 옵션을 사용하여 클라이언트가 DNS 확인자에서 응답을 기다리는 시간을 늘릴 수 있습니다.

성능상의 이유로 DNS 조회를 바이패스하려면 ipa_server 매개변수에서 _srv_ 항목을 제거하고 클라이언트가 연결해야 하는 IdM 서버를 우선 순위로 지정합니다.

예: /etc/sssd/sssd.conf

[domain/<idm_domain_name>]
id_provider = ipa
ipa_server = <primary_idm_server1>, <primary_idm_server2>
ipa_backup_server = <backup_idm_server1>, <backup_idm_server2>
...
Copy to Clipboard Toggle word wrap

IdM 서버 및 서비스에 대한 장애 조치 동작

SSSD 장애 조치 메커니즘은 IdM 서버와 해당 서비스를 독립적으로 처리합니다. 서버의 호스트 이름 확인이 성공하면 SSSD는 시스템이 온라인 상태인 것으로 간주하고 해당 시스템에서 필요한 서비스에 연결을 시도합니다. 서비스 연결이 실패하면 SSSD는 전체 시스템 또는 기타 서비스가 아닌 해당 특정 서비스만 오프라인으로 간주합니다.

호스트 이름 확인이 실패하면 SSSD에서 전체 시스템을 오프라인으로 간주하고 해당 시스템의 서비스에 연결을 시도하지 않습니다.

모든 기본 서버를 사용할 수 없는 경우 SSSD는 구성된 백업 서버에 연결을 시도합니다. 백업 서버에 연결되어 있는 동안 SSSD는 주기적으로 기본 서버 중 하나에 다시 연결하려고 시도하며 기본 서버를 사용할 수 있게 되면 즉시 연결됩니다. 이러한 시도 사이의 간격은 failover_primary_timeout 옵션으로 제어되며 기본값은 31초입니다.

모든 IdM 서버에 연결할 수 없게 되면 SSSD가 오프라인 모드로 전환됩니다. 이 상태에서 SSSD는 서버를 사용할 수 있을 때까지 30초마다 연결을 다시 시도합니다.

서버 측 로드 밸런싱 및 서비스 가용성

여러 IdM 복제본을 설치하여 IdM에서 로드 밸런싱 및 고가용성을 얻을 수 있습니다.

  • 지리적으로 분산된 네트워크가 있는 경우 데이터 센터당 여러 IdM 복제본을 구성하여 IdM 클라이언트와 가장 가까운 액세스 가능 서버 간 경로를 단축할 수 있습니다.
  • Red Hat은 최대 60개의 복제본이 있는 환경을 지원합니다.
  • IdM 복제 메커니즘은 활성/활성 서비스 가용성을 제공합니다. 모든 IdM 복제본의 서비스를 동시에 쉽게 사용할 수 있습니다.
참고

Red Hat은 IdM 및 기타 로드 밸런싱 또는 HA(고가용성) 소프트웨어를 결합하는 것이 좋습니다.

많은 타사 고가용성 솔루션은 활성/수동 시나리오를 가정하고 IdM 가용성에 대한 불필요한 서비스가 중단됩니다. 다른 솔루션에서는 클러스터형 서비스당 가상 IP 또는 단일 호스트 이름을 사용합니다. 일반적으로 이러한 모든 방법은 IdM 솔루션에서 제공하는 서비스 가용성 유형과 제대로 작동하지 않습니다. 또한 Kerberos와 매우 부적절하게 통합되므로 전체 보안 및 배포의 안정성이 감소합니다.

5장. 복제본 토폴로지 최적화

강력한 복제본 토폴로지는 워크로드를 배포하고 복제 지연을 줄입니다. 다음 지침에 따라 복제본 토폴로지의 레이아웃을 최적화합니다.

5.1. 토폴로지에서 적절한 IdM 복제본 수를 결정하는 지침

IdM 토폴로지를 계획하여 조직의 요구 사항과 일치하고 최적의 성능 및 서비스 가용성을 보장합니다.

각 데이터 센터에 두 개 이상의 복제본을 설정
각 데이터 센터에 두 개 이상의 복제본을 배포하여 하나의 서버가 실패하면 복제본이 요청을 인수하고 처리할 수 있도록 합니다.
클라이언트 서비스를 제공하기에 충분한 수의 서버를 설정
하나의 IdM(Identity Management) 서버는 2000 - 3000 클라이언트에 서비스를 제공할 수 있습니다. 이 경우 클라이언트는 서버를 하루에 여러 번 쿼리하지만 예를 들어 1분마다 쿼리하지는 않습니다. 자주 쿼리를 예상하는 경우 더 많은 서버를 계획하십시오.
충분한 수의 CA(인증 기관) 복제본 설정
CA 역할이 설치된 복제본만 인증서 데이터를 복제할 수 있습니다. IdM CA를 사용하는 경우 환경에 인증서 복제 계약이 있는 두 개 이상의 CA 복제본이 있는지 확인합니다.
단일 IdM 도메인에서 최대 60개의 복제본 설정
Red Hat은 최대 60개의 복제본이 있는 환경을 지원합니다.

5.2. 토폴로지에서 IdM 복제본 연결 지침

각 복제본을 두 개 이상의 다른 복제본에 연결
이렇게 하면 초기 복제본과 설치한 첫 번째 서버뿐만 아니라 다른 복제본 간에 정보가 복제됩니다.
복제본을 최대 4개의 다른 복제본에 연결(하드 요구 사항 아님)

서버당 다수의 복제 계약은 상당한 이점을 제공하지 않습니다. 수신 복제본은 한 번에 하나의 다른 복제본에서만 업데이트할 수 있으며 다른 복제 계약은 유휴 상태입니다. 복제본당 4개 이상의 복제 계약은 일반적으로 리소스를 낭비함을 의미합니다.

참고

이 권장 사항은 인증서 복제 및 도메인 복제 계약에 모두 적용됩니다.

복제본당 복제 계약 4개에 대한 두 가지 예외가 있습니다.

  • 특정 복제본이 온라인 또는 응답하지 않는 경우 장애 조치 경로가 필요합니다.
  • 대규모 배포에서 특정 노드 간 직접 링크를 추가로 연결하려고 합니다.

다수의 복제 계약을 구성하면 전반적인 성능에 부정적인 영향을 미칠 수 있습니다. 즉 토폴로지의 여러 복제 계약이 업데이트를 전송하는 경우 특정 복제본에서 들어오는 업데이트와 발신 업데이트 간에 changelog 데이터베이스 파일에 대한 높은 경합이 발생할 수 있습니다.

복제본당 더 많은 복제 계약을 사용하려면 복제 문제 및 대기 시간이 발생하지 않도록 합니다. 그러나 큰 거리와 높은 수의 중간 노드도 대기 시간 문제가 발생할 수 있습니다.

데이터 센터의 복제본을 서로 연결
이렇게 하면 데이터 센터 내의 도메인 복제가 가능합니다.
각 데이터 센터를 두 개 이상의 다른 데이터 센터에 연결
이렇게 하면 데이터 센터 간 도메인 복제가 가능합니다.
최소 한 쌍의 복제 계약을 사용하여 데이터 센터 연결
데이터 센터 A 및 B에 A1에서 B1로의 복제 계약이 있는 경우 A2에서 B2로 복제 계약을 보유하면 서버 중 하나가 다운된 경우 두 데이터 센터 간에 복제를 계속할 수 있습니다.

5.3. 복제본 토폴로지 예

다음 예제 중 하나를 사용하여 안정적인 복제본 토폴로지를 생성할 수 있습니다.

그림 5.1. 4개의 데이터 센터가 있는 복제본 토폴로지, 각각 복제 계약과 연결된 4개의 서버가 있음



그림 5.2. 3개의 데이터 센터가 있는 복제본 토폴로지, 각각 복제 계약을 통해 상호 연결된 서로 다른 서버 수

5.4. IdM 서버에서 IdM CA 서비스 설치 제거

토폴로지에서 CA 역할이 있는 4개 이상의 IdM(Identity Management) 복제본이 있고 중복 인증서 복제로 인해 성능 문제가 발생하는 경우 IdM 복제본에서 중복 CA 서비스 인스턴스를 제거합니다. 이렇게 하려면 먼저 영향을 받는 IdM 복제본을 완전히 해제한 다음 CA 서비스 없이 IdM을 다시 설치해야 합니다.

참고

IdM 복제본에 CA 역할을 추가할 수 있지만 IdM은 IdM 복제본에서 CA 역할만 제거하는 방법을 제공하지 않습니다. ipa-ca-install 명령에 --uninstall 옵션이 없습니다.

사전 요구 사항

  • 토폴로지의 IdM 서버 4개 이상에 IdM CA 서비스가 설치되어 있습니다.

절차

  1. 중복 CA 서비스를 식별하고 이 서비스를 호스팅하는 IdM 복제본 에서 IdM 서버 설치 제거 절차를 따릅니다.
  2. 동일한 호스트에서 IdM 서버 설치 절차에 따라 CA가 없는 통합 DNS를 사용합니다.

6장. 검색 크기 및 시간 제한 조정

IdM 사용자 목록을 요청하는 것과 같은 일부 쿼리는 매우 많은 항목을 반환할 수 있습니다. 이러한 검색 작업을 튜닝하면 ipa user-find 명령과 같은 ipa *-find 명령을 실행할 때와 웹 UI에 해당 목록을 표시할 때 전체 서버 성능을 향상시킬 수 있습니다.

검색 크기 제한

클라이언트 CLI 또는 IdM 웹 UI에 액세스하는 브라우저에서 서버로 전송된 요청에 대해 반환된 최대 항목 수를 정의합니다.

기본값: 100개 항목.

검색 시간 제한

서버에서 검색이 실행될 때까지 대기하는 최대 시간(초)을 정의합니다. 검색이 이 제한에 도달하면 서버는 검색을 중지하고 해당 시간에 검색된 항목을 반환합니다.

기본값: 2초.

값을 -1 로 설정하면 검색 시 IdM에 제한이 적용되지 않습니다.

중요

검색 크기 또는 시간 제한을 너무 높게 설정하면 서버 성능에 부정적인 영향을 미칠 수 있습니다.

6.1. 명령줄에서 검색 크기 및 시간 제한 조정

검색 크기 및 시간 제한을 전역적으로 조정하거나 특정 항목에 대해 조정하여 검색 성능과 응답성을 최적화할 수 있습니다.

절차

  1. CLI에 현재 검색 시간 및 크기 제한을 표시하려면 ipa config-show 명령을 사용합니다.

    $ ipa config-show
    
    Search time limit: 2
    Search size limit: 100
    Copy to Clipboard Toggle word wrap
  2. 모든 쿼리에 대해 전역적으로 제한을 조정하려면 ipa config-mod 명령을 사용하고 --searchrecordslimit--searchtimelimit 옵션을 추가합니다. 예를 들면 다음과 같습니다.

    $ ipa config-mod --searchrecordslimit=500 --searchtimelimit=5
    Copy to Clipboard Toggle word wrap
  3. 특정 쿼리에 대해서만 제한을 일시적으로 조정하려면 명령에 --sizelimit 또는 --timelimit 옵션을 추가합니다. 예를 들면 다음과 같습니다.

    $ ipa user-find --sizelimit=200 --timelimit=120
    Copy to Clipboard Toggle word wrap

6.2. 웹 UI에서 검색 크기 및 시간 제한 조정

IdM 웹 UI를 사용하여 글로벌 검색 크기 및 시간 제한을 조정하여 검색 성능과 응답을 최적화할 수 있습니다.

절차

  1. IdM 웹 UI에 로그인합니다.
  2. IPA Server 를 클릭합니다.
  3. IPA Server 탭에서 Configuration 을 클릭합니다.
  4. Search Options (검색 옵션) 영역에 필요한 값을 설정합니다.

    기본값은 다음과 같습니다.

    • 검색 크기 제한: 100개 항목
    • 검색 시간 제한: 2초
  5. 페이지 위쪽에서 저장을 클릭합니다.

7장. IdM Directory Server 성능 조정

Directory Server의 리소스 및 동작을 제어하는 LDAP 특성을 조정하여 ID 관리의 데이터베이스 성능을 조정할 수 있습니다.

다음을 미세 조정할 수 있습니다.

  • Directory Server에서 데이터를 캐시 하는 방법을 조정합니다.
  • Directory Server의 리소스 제한을 조정합니다.
  • 성능에 가장 큰 영향을 미치는 타임아웃 을 조정합니다.
  • LDIF 파일에서 사용자 지정 디렉터리 서버 설정을 사용하여 IdM 서버 또는 복제본을 설치합니다.

7.1. IdM Directory Server의 항목 캐시 크기 조정

중요

사용자 지정 값을 적용할 필요가 없는 한 이 설정은 변경하지 마십시오. IdM Directory Server는 최적화된 성능을 위해 내장된 캐시 자동 설정 기능을 사용합니다.

nsslapd-cachememsize 속성은 항목 캐시에 사용 가능한 메모리 공간에 크기(바이트)를 지정합니다. 이 속성은 Directory Server에서 사용하는 물리적 RAM의 양을 제어하기 위한 가장 중요한 값 중 하나입니다.

항목 캐시 크기가 너무 작으면 /var/log/dirsrv/slapd- <instance_name> /errors 로그 파일에 Directory Server 오류 로그에 다음 오류가 표시될 수 있습니다.

REASON: entry too large (83886080 bytes) for the import buffer size (67108864 bytes).  Try increasing nsslapd-cachememsize.
Copy to Clipboard Toggle word wrap

Red Hat은 항목 캐시와 데이터베이스 인덱스 입력 캐시를 메모리에 맞출 것을 권장합니다.

Expand
표 7.1. nsslapd-cachememsize 속성 값

기본값

209715200 (200 MiB)

유효한 범위

500000 - 18446744073709551615 (500 kB - (264-1))

DN 항목 위치

cn=<database_name>,cn=ldbm database,cn=plugins,cn=config

사전 요구 사항

  • LDAP Directory Manager 암호

절차

  1. 자동 캐시 튜닝을 비활성화합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> backend config set --cache-autosize=0
    Copy to Clipboard Toggle word wrap
  2. 데이터베이스 접미사와 해당 백엔드를 표시합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> backend suffix list
    cn=changelog (changelog)
    dc=example,dc=com (userroot)
    o=ipaca (ipaca)
    Copy to Clipboard Toggle word wrap

    이 명령은 각 접미사 옆에 있는 백엔드 데이터베이스의 이름을 표시합니다. 다음 단계에서 접미사의 데이터베이스 이름을 사용합니다.

  3. 데이터베이스의 항목 캐시 크기를 설정합니다. 이 예에서는 userroot 데이터베이스의 항목 캐시를 2GB로 설정합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> backend suffix set --cache-memsize=2147483648 userroot
    Copy to Clipboard Toggle word wrap
  4. Directory Server를 다시 시작합니다.

    [root@server ~]# systemctl restart dirsrv.target
    Copy to Clipboard Toggle word wrap
  5. IdM 디렉터리 서버의 성능을 모니터링합니다. 개선되지 않으면 이 절차를 반복하고 cache-memsize 를 다른 값으로 조정하거나 캐시 자동 크기 조정을 다시 활성화합니다.

검증

  • nsslapd-cachememsize 특성 값을 표시하고 원하는 값으로 설정되어 있는지 확인합니다.

    [root@server ~]# ldapsearch -D "cn=Directory Manager" -w <directory_manager_password> -b "cn=userroot,cn=ldbm database,cn=plugins,cn=config" | grep nsslapd-cachememsize
    nsslapd-cachememsize: 2147483648
    Copy to Clipboard Toggle word wrap

7.2. IdM Directory Server의 데이터베이스 인덱스 캐시 크기 조정

중요

사용자 지정 값을 적용할 필요가 없는 한 이 설정은 변경하지 마십시오. IdM Directory Server는 최적화된 성능을 위해 내장된 캐시 자동 설정 기능을 사용합니다.

nsslapd-dbcachesize 속성은 데이터베이스 인덱스가 사용하는 메모리 양을 제어합니다. 이 캐시 크기는 항목 캐시 크기보다 Directory Server 성능에 미치는 영향은 줄어들지만 항목 캐시 크기가 설정된 후 사용 가능한 RAM이 있는 경우 데이터베이스 캐시에 할당된 메모리 양을 늘리는 것이 좋습니다.

데이터베이스 캐시는 1.5GB RAM으로 제한됩니다. 높은 값은 성능을 향상시키지 않기 때문입니다.

Expand
표 7.2. nsslapd-dbcachesize 속성 값

기본값

10000000 (10MB)

유효한 범위

500000 - 1610611911 (500 KB - 1.5GB)

DN 항목 위치

cn=config,cn=ldbm database,cn=plugins,cn=config

사전 요구 사항

  • LDAP Directory Manager 암호

프로세스

  1. 자동 캐시 튜닝을 비활성화하고 데이터베이스 캐시 크기를 설정합니다. 이 예에서는 데이터베이스 캐시를 256MB로 설정합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> backend config set --cache-autosize=0 --dbcachesize=268435456
    Copy to Clipboard Toggle word wrap
  2. Directory Server를 다시 시작합니다.

    [root@server ~]# systemctl restart dirsrv.target
    Copy to Clipboard Toggle word wrap
  3. IdM 디렉터리 서버의 성능을 모니터링합니다. 개선되지 않으면 이 절차를 반복하고 dbcachesize 를 다른 값으로 조정하거나 캐시 자동 크기 조정을 다시 활성화합니다.

검증

  • nsslapd-dbcachesize 속성 값을 표시하고 원하는 값으로 설정되어 있는지 확인합니다.

    [root@server ~]# ldapsearch -D "cn=Directory Manager" -w <directory_manager_password> -b "cn=config,cn=ldbm database,cn=plugins,cn=config" | grep nsslapd-dbcachesize
    nsslapd-dbcachesize: 2147483648
    Copy to Clipboard Toggle word wrap
중요

최적화된 성능을 위해 기본 제공 캐시 자동 크기 조정 기능을 사용합니다. 캐시 크기를 수동으로 설정하지 마십시오.

기본적으로 IdM 디렉터리 서버는 데이터베이스 캐시 및 항목 캐시에 대한 최적의 크기를 자동으로 결정합니다. 사용 가능한 RAM의 일부를 제외하고 자동 크기 조정 세트를 설정하고 인스턴스가 시작될 때 서버의 하드웨어 리소스에 따라 두 캐시의 크기를 최적화합니다.

이 절차를 사용하여 사용자 정의 데이터베이스 캐시 및 항목 캐시 값을 취소하고 캐시 자동 크기 조정 기능을 기본값으로 복원합니다.

Expand
표 7.3. nsslapd-cache-autosize 속성 값

nsslapd-cache-autosize

이 설정은 데이터베이스 및 항목 캐시 자동 크기 조정을 위해 할당된 여유 RAM 양을 제어합니다. 값이 0 이면 자동 크기 조정이 비활성화됩니다.

기본값

10 (10 %의 무료 RAM)

유효한 범위

0 - 100

DN 항목 위치

cn=config,cn=ldbm database,cn=plugins,cn=config

Expand
표 7.4. nsslapd-cache-autosize-split 특성 값

nsslapd-cache-autosize-split

이 값은 데이터베이스 캐시에 사용되는 nsslapd-cache-autosize 에 의해 결정된 사용 가능한 메모리의 백분율을 설정합니다. 나머지 백분율은 항목 캐시에 사용됩니다.

기본값

25 (데이터베이스 캐시의 경우 25%, 입력 캐시의 경우 60%)

유효한 범위

0 - 100

DN 항목 위치

cn=config,cn=ldbm database,cn=plugins,cn=config

사전 요구 사항

  • 이전에 데이터베이스 및 진입점 캐시 자동 튜닝을 비활성화했습니다.

절차

  1. Directory Server를 중지합니다.

    [root@server ~]# systemctl stop dirsrv.target
    Copy to Clipboard Toggle word wrap
  2. 추가 수정 전에 /etc/dirsrv/slapd-<instance_name> /dse.ldif 파일을 백업합니다.

    [root@server ~]# cp /etc/dirsrv/slapd-<instance_name>/dse.ldif \ /etc/dirsrv/slapd-<instance_name>/dse.ldif.bak.$(date "+%F_%H-%M-%S")
    Copy to Clipboard Toggle word wrap
  3. /etc/dirsrv/slapd-<instance_name> /dse.ldif 파일을 편집합니다.

    1. 데이터베이스 및 항목 캐시에 사용할 사용 가능한 시스템 RAM의 백분율을 사용 가능한 RAM의 10%의 기본값인 10%로 다시 설정합니다.

      nsslapd-cache-autosize: 10
      Copy to Clipboard Toggle word wrap
    2. 데이터베이스 캐시의 사용 가능한 시스템 RAM에서 사용된 백분율을 기본값인 25%로 설정합니다.

      nsslapd-cache-autosize-split: 25
      Copy to Clipboard Toggle word wrap
  4. /etc/dirsrv/slapd-<instance_name> /dse.ldif 파일에 변경 사항을 저장합니다.
  5. Directory Server를 시작합니다.

    [root@server ~]# systemctl start dirsrv.target
    Copy to Clipboard Toggle word wrap

검증

  • nsslapd-cache-autosizensslapd-cache-autosize-split 속성 값을 표시하고 원하는 값으로 설정되어 있는지 확인합니다.

    [root@server ~]# ldapsearch -D "cn=Directory Manager" -w <directory_manager_password> -b "cn=config,cn=ldbm database,cn=plugins,cn=config" | grep nsslapd-cache-autosize nsslapd-cache-autosize: *10
    nsslapd-cache-autosize-split: 25
    Copy to Clipboard Toggle word wrap

7.4. IdM 디렉터리 서버에서 DN 캐시 크기 조정

중요

사용자 지정 값을 적용할 필요가 없는 한 이 설정은 변경하지 마십시오. IdM Directory Server는 최적화된 성능을 위해 내장된 캐시 자동 설정 기능을 사용합니다.

nsslapd-dncachememsize 속성은 Distinguished Names(DN) 캐시에 사용할 수 있는 메모리 공간에 크기(바이트)를 지정합니다. DN 캐시는 데이터베이스의 항목 캐시와 유사하지만 해당 표에서는 항목 ID와 DN 항목만 저장하므로 이름 변경moddn 작업 시 더 빠르게 조회할 수 있습니다.

Expand
표 7.5. nsslapd-dncachememsize 속성 값

기본값

10485760 (10 MB)

유효한 범위

500000 - 18446744073709551615 (500 kB - (264-1))

입력 DN 위치

cn=database-name,cn=ldbm database,cn=plugins,cn=config

사전 요구 사항

  • LDAP Directory Manager 암호

프로세스

  1. 선택 사항: 데이터베이스 접미사와 해당 데이터베이스 이름을 표시합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> backend suffix list
    dc=example,dc=com (userroot)
    Copy to Clipboard Toggle word wrap

    이 명령은 각 접미사 옆에 백엔드 데이터베이스의 이름을 표시합니다. 다음 단계에서 접미사의 데이터베이스 이름을 사용합니다.

  2. 데이터베이스의 DN 캐시 크기를 설정합니다. 이 예에서는 DN 캐시를 20MB로 설정합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> backend suffix set --dncache-memsize=20971520 userroot
    Copy to Clipboard Toggle word wrap
  3. Directory Server를 다시 시작합니다.

    [root@server ~]# systemctl restart dirsrv.target
    Copy to Clipboard Toggle word wrap
  4. IdM 디렉터리 서버의 성능을 모니터링합니다. 개선되지 않으면 이 절차를 반복하고 dncache-memsize 를 다른 값으로 조정하거나 기본값인 10MB로 조정합니다.

검증

  • nsslapd-dncachememsize 속성의 새 값을 표시하고 원하는 값으로 설정되어 있는지 확인합니다.

    [root@server ~]# ldapsearch -D "cn=Directory Manager" -w <directory_manager_password> -b "cn=userroot,cn=ldbm database,cn=plugins,cn=config" | grep nsslapd-dncachememsize
    nsslapd-dncachememsize: 20971520
    Copy to Clipboard Toggle word wrap

7.5. IdM Directory Server에서 정규화된 DN 캐시 크기 조정

중요

사용자 지정 값을 적용할 필요가 없는 한 이 설정은 변경하지 마십시오. IdM Directory Server는 최적화된 성능을 위해 내장된 캐시 자동 설정 기능을 사용합니다.

nsslapd-ndn-cache-max-size 속성은 정규화된 고유 이름(NDN)을 저장하는 캐시의 크기(바이트)를 제어합니다. 이 값을 늘리면 메모리에 더 자주 사용되는 DN이 유지됩니다.

Expand
표 7.6. nsslapd-ndn-cache-max-size 속성 값

기본값

20971520 (20 MB)

유효한 범위

0 - 2147483647

입력 DN 위치

cn=config

사전 요구 사항

  • LDAP Directory Manager 암호

프로세스

  1. NDN 캐시가 활성화되어 있는지 확인합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config get nsslapd-ndn-cache-enabled
    Enter password for cn=Directory Manager on ldap://server.example.com:
    nsslapd-ndn-cache-enabled: on
    Copy to Clipboard Toggle word wrap

    캐시가 꺼져 있으면 다음 명령으로 캐시를 활성화합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config replace nsslapd-ndn-cache-enabled=on
    Enter password for cn=Directory Manager on ldap://server.example.com:
    Successfully replaced "nsslapd-ndn-cache-enabled"
    Copy to Clipboard Toggle word wrap
  2. nsslapd-ndn-cache-max-size 매개변수의 현재 값을 검색하고 복원해야 하는 경우 이를 조정하기 전에 기록해 둡니다. 메시지가 표시되면 Directory Manager 암호를 입력합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config get nsslapd-ndn-cache-max-size
    Enter password for cn=Directory Manager on ldap://server.example.com:
    nsslapd-ndn-cache-max-size: 20971520
    Copy to Clipboard Toggle word wrap
  3. nsslapd-ndn-cache-max-size 속성 값을 수정합니다. 이 예에서는 값을 41943040 (40MB)으로 늘립니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config replace nsslapd-ndn-cache-max-size=41943040
    Copy to Clipboard Toggle word wrap
  4. IdM 디렉터리 서버의 성능을 모니터링합니다. 개선되지 않으면 이 절차를 반복하고 nsslapd-ndn-cache-max-size 를 다른 값으로 조정하거나 캐시 자동 크기 조정을 다시 활성화합니다.

검증

  • nsslapd-ndn-cache-max-size 속성의 새 값을 표시하고 원하는 값으로 설정되어 있는지 확인합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config get nsslapd-ndn-cache-max-size
    Enter password for cn=Directory Manager on ldap://server.example.com:
    nsslapd-ndn-cache-max-size: 41943040
    Copy to Clipboard Toggle word wrap

7.6. IdM Directory Server의 최대 메시지 크기 조정

nsslapd-maxbersize 속성은 들어오는 메시지 또는 LDAP 요청에 허용되는 최대 크기(바이트)를 설정합니다. 요청 크기를 제한하면 서비스 거부 공격이 발생하지 않습니다.

최대 메시지 크기가 너무 작으면 /var/log/dirsrv/slapd- <instance_name> /errors: 디렉터리 서버 오류 로그에 다음 오류가 표시될 수 있습니다.

Incoming BER Element was too long, max allowable is 2097152 bytes. Change the nsslapd-maxbersize attribute in cn=config to increase.
Copy to Clipboard Toggle word wrap

제한은 LDAP 요청의 총 크기에 적용됩니다. 예를 들어, 항목을 추가하라는 요청이고 요청의 항목이 구성된 값 또는 기본값보다 크면 추가 요청이 거부됩니다. 그러나 이 제한은 복제 프로세스에 적용되지 않습니다. 이 속성을 변경하기 전에 주의하십시오.

Expand
표 7.7. nsslapd-maxbersize 속성 값

기본값

2097152 (2 MB)

유효한 범위

0 - 2147483647 (0 ~ 2GB)

입력 DN 위치

cn=config

사전 요구 사항

  • LDAP Directory Manager 암호

프로세스

  1. nsslapd-maxbersize 매개변수의 현재 값을 검색하고 복원해야 하는 경우 조정하기 전에 기록해 둡니다. 메시지가 표시되면 Directory Manager 암호를 입력합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config get nsslapd-maxbersize
    Enter password for cn=Directory Manager on ldap://server.example.com:
    nsslapd-maxbersize: 2097152
    Copy to Clipboard Toggle word wrap
  2. nsslapd-maxbersize 속성 값을 수정합니다. 이 예에서는 값을 4194304, 4MB로 늘립니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config replace nsslapd-maxbersize=4194304
    Copy to Clipboard Toggle word wrap
  3. Directory Manager로 인증하여 구성을 변경합니다.

    Enter password for cn=Directory Manager on ldap://server.example.com:
    Successfully replaced "nsslapd-maxbersize"
    Copy to Clipboard Toggle word wrap
  4. IdM 디렉터리 서버의 성능을 모니터링합니다. 개선되지 않으면 이 절차를 반복하고 nsslapd-maxbersize 를 다른 값으로 조정하거나 기본값인 2097152 로 조정합니다.

검증

  • nsslapd-maxbersize 속성 값을 표시하고 원하는 값으로 설정되어 있는지 확인합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config get nsslapd-maxbersize
    Enter password for cn=Directory Manager on ldap://server.example.com:
    nsslapd-maxbersize: 4194304
    Copy to Clipboard Toggle word wrap

7.7. IdM Directory Server의 최대 파일 설명자 수 조정

값은 /etc/systemd/system.conf 파일의 DefaultLimitNOFILE 매개변수에 대해 정의할 수 있습니다. root 권한이 있는 관리자는 setrlimit 명령을 사용하여 ns-slapd 프로세스의 DefaultLimitNOFILE 매개변수를 더 낮은 값으로 설정할 수 있습니다. 그런 다음 이 값은 /etc/systemd/system.conf 에 있는 것보다 우선하며 nsslapd-maxdescriptors 속성 값으로 IdM(Identity Management) 디렉터리 서버(DS)에서 허용됩니다.

nsslapd-maxdescriptors 속성은 IdM LDAP에서 사용하는 최대 플랫폼 종속 파일 설명자 수를 설정합니다. 파일 설명자는 클라이언트 연결, 로그 파일, 소켓 및 기타 리소스에 사용됩니다.

/etc/systemd/system.conf 또는 setrlimit 에 의해 값이 정의되지 않은 경우 IdM DS는 nsslapd-maxdescriptors 속성을 1048576로 설정합니다.

나중에 IdM DS 관리자가 nsslapd-maxdescriptors 에 대한 새 값을 수동으로 설정한 경우 IdM DS는 setrlimit 또는 /etc/systemd/system.conf 에 의해 로컬로 정의된 항목과 다음 결과를 비교합니다.

  • nsslapd-maxdescriptors 의 새 값이 로컬에 정의된 값보다 크면 서버에서 새 값 설정을 거부하고 높은 워터마크 값으로 로컬 제한 값을 계속 적용합니다.
  • 새 값이 로컬에 정의된 값보다 작으면 새 값이 사용됩니다.

다음 절차에서는 nsslapd-maxdescriptors 의 새 값을 설정하는 방법을 설명합니다.

사전 요구 사항

  • LDAP Directory Manager 암호

프로세스

  1. nsslapd-maxdescriptors 매개변수의 현재 값을 검색하고 복원해야 하는 경우 조정하기 전에 기록해 둡니다. 메시지가 표시되면 Directory Manager 암호를 입력합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config get nsslapd-maxdescriptors
    Enter password for cn=Directory Manager on ldap://server.example.com:
    nsslapd-maxdescriptors: 4096
    Copy to Clipboard Toggle word wrap
  2. nsslapd-maxdescriptors 속성 값을 수정합니다. 이 예에서는 값을 8192 로 늘립니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config replace nsslapd-maxdescriptors=8192
    Copy to Clipboard Toggle word wrap
  3. Directory Manager로 인증하여 구성을 변경합니다.

    Enter password for cn=Directory Manager on ldap://server.example.com:
    Successfully replaced "nsslapd-maxdescriptors"
    Copy to Clipboard Toggle word wrap
  4. IdM 디렉터리 서버의 성능을 모니터링합니다. 개선되지 않으면 이 절차를 반복하고 nsslapd-maxdescriptors 를 다른 값으로 조정하거나 기본값 4096 으로 되돌립니다.

검증

  • nsslapd-maxdescriptors 속성 값을 표시하고 원하는 값으로 설정되어 있는지 확인합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config get nsslapd-maxdescriptors
    Enter password for cn=Directory Manager on ldap://server.example.com:
    nsslapd-maxdescriptors: 8192
    Copy to Clipboard Toggle word wrap

7.8. IdM Directory Server의 연결 백로그 크기 조정

listen 서비스는 들어오는 연결을 수신하는 데 사용할 수 있는 소켓 수를 설정합니다. nsslapd-listen-backlog-size 값은 연결을 거부하기 전에 sockfd 소켓의 최대 큐 길이를 설정합니다.

IdM 환경에서 많은 양의 연결을 처리하는 경우 nsslapd-listen-backlog-size 의 값을 늘리는 것이 좋습니다.

Expand
표 7.8. nsslapd-listen-backlog-size 속성 값

기본값

128 개의 대기열 슬롯

유효한 범위

0 - 9223372036854775807

입력 DN 위치

cn=config

사전 요구 사항

  • LDAP Directory Manager 암호

프로세스

  1. nsslapd-listen-backlog-size 매개변수의 현재 값을 검색하고 복원해야 하는 경우 이를 조정하기 전에 기록해 둡니다. 메시지가 표시되면 Directory Manager 암호를 입력합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config get nsslapd-listen-backlog-size
    Enter password for cn=Directory Manager on ldap://server.example.com:
    nsslapd-listen-backlog-size: 128
    Copy to Clipboard Toggle word wrap
  2. nsslapd-listen-backlog-size 속성 값을 수정합니다. 이 예에서는 값을 192 로 늘립니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config replace nsslapd-listen-backlog-size=192
    Copy to Clipboard Toggle word wrap
  3. Directory Manager로 인증하여 구성을 변경합니다.

    Enter password for cn=Directory Manager on ldap://server.example.com:
    Successfully replaced "nsslapd-listen-backlog-size"
    Copy to Clipboard Toggle word wrap

검증

  • nsslapd-listen-backlog-size 속성 값을 표시하고 원하는 값으로 설정되어 있는지 확인합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config get nsslapd-listen-backlog-size
    Enter password for cn=Directory Manager on ldap://server.example.com:
    nsslapd-listen-backlog-size: 192
    Copy to Clipboard Toggle word wrap

7.9. IdM 디렉터리 서버의 최대 데이터베이스 잠금 수 조정

잠금 메커니즘은 동시에 실행할 수 있는 Directory Server 프로세스의 사본 수를 제어하고 nsslapd-db-locks 매개변수는 최대 잠금 수를 설정합니다.

/var/log/dirsrv/slapd- <instance_name> /errors 로그 파일에 다음 오류 메시지가 표시되면 최대 잠금 수를 늘립니다.

libdb: Lock table is out of available locks
Copy to Clipboard Toggle word wrap
Expand
표 7.9. nsslapd-db-locks 속성 값

기본값

50000 잠금

유효한 범위

0 - 2147483647

입력 DN 위치

cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config

사전 요구 사항

  • LDAP Directory Manager 암호

프로세스

  1. nsslapd-db-locks 매개변수의 현재 값을 검색하고 복원해야 하는 경우 조정하기 전에 기록해 둡니다.

    [root@server ~]# ldapsearch -D "cn=Directory Manager" -w <directory_manager_password> -b "cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config" | grep nsslapd-db-locks
    nsslapd-db-locks: 50000
    Copy to Clipboard Toggle word wrap
  2. locks 속성의 값을 수정합니다. 이 예에서는 값을 100000 잠금으로 두 배로 늘립니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> backend config set --locks=100000
    Copy to Clipboard Toggle word wrap
  3. Directory Manager로 인증하여 구성을 변경합니다.

    Enter password for cn=Directory Manager on ldap://server.example.com:
    Successfully updated database configuration
    Copy to Clipboard Toggle word wrap
  4. Directory Server를 다시 시작합니다.

    [root@server ~]# systemctl restart dirsrv.target
    Copy to Clipboard Toggle word wrap

검증

  • nsslapd-db-locks 속성 값을 표시하고 원하는 값으로 설정되어 있는지 확인합니다.

    [root@server ~]# ldapsearch -D "cn=directory manager" -w <directory_manager_password> -b "cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config" | grep nsslapd-db-locks
    nsslapd-db-locks: 100000
    Copy to Clipboard Toggle word wrap

7.10. IdM 디렉터리 서버에서 Transparent Huge Pages 기능 비활성화

THP(Transparent Huge Pages) Linux 메모리 관리 기능은 RHEL에서 기본적으로 활성화됩니다. DS에 스파스 메모리 액세스 패턴이 있으므로 THP 기능은 IdM Directory Server (DS) 성능을 줄일 수 있습니다.

기능을 비활성화하는 방법은 Red Hat Directory Server 설명서에서 투명한 대규모 페이지 기능 비활성화 를 참조하십시오.

7.11. IdM Directory Server의 입력/출력 블록 시간 제한 조정

nsslapd-ioblocktimeout 속성은 stalled LDAP 클라이언트에 대한 연결이 종료된 후 시간(밀리초)을 설정합니다. 읽기 또는 쓰기 작업에 대한 I/O 진행이 이루어지지 않은 경우 LDAP 클라이언트는 정지된 것으로 간주됩니다.

nsslapd-ioblocktimeout 속성 값을 줄여 연결을 더 빨리 확보합니다.

Expand
표 7.10. nsslapd-ioblocktimeout 속성 값

기본값

10000 밀리초

유효한 범위

0 - 2147483647

입력 DN 위치

cn=config

사전 요구 사항

  • LDAP Directory Manager 암호

프로세스

  1. nsslapd-ioblocktimeout 매개변수의 현재 값을 검색하고 복원해야 하는 경우 조정하기 전에 기록해 둡니다. 메시지가 표시되면 Directory Manager 암호를 입력합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config get nsslapd-ioblocktimeout
    Enter password for cn=Directory Manager on ldap://server.example.com:
    nsslapd-ioblocktimeout: 10000
    Copy to Clipboard Toggle word wrap
  2. nsslapd-ioblocktimeout 특성 값을 수정합니다. 이 예에서는 값을 8000 으로 낮춥니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config replace nsslapd-ioblocktimeout=8000
    Copy to Clipboard Toggle word wrap
  3. Directory Manager로 인증하여 구성을 변경합니다.

    Enter password for cn=Directory Manager on ldap://server.example.com:
    Successfully replaced "nsslapd-ioblocktimeout"
    Copy to Clipboard Toggle word wrap
  4. IdM 디렉터리 서버의 성능을 모니터링합니다. 개선되지 않으면 이 절차를 반복하고 nsslapd-ioblocktimeout 을 다른 값으로 조정하거나 기본값인 10000 으로 다시 조정합니다.

검증

  • nsslapd-ioblocktimeout 속성 값을 표시하고 원하는 값으로 설정되어 있는지 확인합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config get nsslapd-ioblocktimeout
    Enter password for cn=Directory Manager on ldap://server.example.com:
    nsslapd-idletimeout: 8000
    Copy to Clipboard Toggle word wrap

7.12. IdM Directory Server에서 유휴 연결 시간 초과 조정

nsslapd-idletimeout 속성은 IdM 서버에서 유휴 LDAP 클라이언트 연결을 닫은 시간(초)을 설정합니다. 값 0 은 서버가 유휴 연결을 종료하지 않음을 의미합니다.

오래된 연결이 닫히지 않도록 이 값을 조정하는 것이 좋지만 활성 연결은 조기 종료되지 않습니다.

Expand
표 7.11. nsslapd-idletimeout 속성 값

기본값

3600(1시간)

유효한 범위

0 - 2147483647

입력 DN 위치

cn=config

사전 요구 사항

  • LDAP Directory Manager 암호

프로세스

  1. nsslapd-idletimeout 매개변수의 현재 값을 검색하고 복원해야 하는 경우 조정하기 전에 기록해 둡니다. 메시지가 표시되면 Directory Manager 암호를 입력합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config get nsslapd-idletimeout
    Enter password for cn=Directory Manager on ldap://server.example.com:
    nsslapd-idletimeout: 3600
    Copy to Clipboard Toggle word wrap
  2. nsslapd-idletimeout 속성 값을 수정합니다. 이 예에서는 값을 1800 (30 분)으로 줄입니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config replace nsslapd-idletimeout=1800
    Copy to Clipboard Toggle word wrap
  3. Directory Manager로 인증하여 구성을 변경합니다.

    Enter password for cn=Directory Manager on ldap://server.example.com:
    Successfully replaced "nsslapd-idletimeout"
    Copy to Clipboard Toggle word wrap
  4. IdM 디렉터리 서버의 성능을 모니터링합니다. 개선되지 않으면 이 절차를 반복하고 nsslapd-idletimeout 을 다른 값으로 조정하거나 기본값 3600 으로 다시 조정합니다.

검증

  • nsslapd-idletimeout 속성 값을 표시하고 원하는 값으로 설정되어 있는지 확인합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> config get nsslapd-idletimeout
    Enter password for cn=Directory Manager on ldap://server.example.com:
    nsslapd-idletimeout: 3600
    Copy to Clipboard Toggle word wrap

7.13. 복제 릴리스 타임아웃 조정

IdM 복제본은 복제 세션 중에 다른 복제본이 있는 동안 전용 잠금됩니다. 일부 환경에서는 복제본이 오랫동안 잠기 때문에 대규모 업데이트 또는 네트워크 정체로 인해 복제 대기 시간이 증가합니다.

repl-release-timeout 매개변수를 조정하여 일정 시간 후에 복제본을 해제할 수 있습니다. Red Hat은 이 값을 30 에서 120 으로 설정하는 것이 좋습니다.

  • 값이 너무 낮게 설정되면 복제본이 지속적으로 서로 다시 업데이트되고 복제본이 더 큰 업데이트를 보낼 수 없습니다.
  • 시간 초과가 길면 서버가 더 긴 시간 동안 복제본에 독점적으로 액세스하지만 값이 120 초 이상 지연되는 경우 트래픽이 많은 상황을 개선할 수 있습니다.
Expand
표 7.12. REPL-release-timeout 속성 값

기본값

60

유효한 범위

0 - 2147483647

권장 범위

30 - 120

사전 요구 사항

  • LDAP Directory Manager 암호

절차

  1. 데이터베이스 접미사와 해당 백엔드를 표시합니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> backend suffix list
    cn=changelog (changelog)
    dc=example,dc=com (userroot)
    o=ipaca (ipaca)
    Copy to Clipboard Toggle word wrap

    이 명령은 백엔드 데이터베이스의 이름을 접미사 옆에 표시합니다. 다음 단계에서 접미사 이름을 사용합니다.

  2. 기본 userroot 데이터베이스의 repl-release-timeout 속성 값을 수정합니다. 이 예에서는 값을 90 초로 늘립니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> replication set --suffix="dc=example,dc=com" --repl-release-timeout=90
    Copy to Clipboard Toggle word wrap
  3. 구성을 변경하기 위해 Directory Manager로 인증합니다.

    Enter password for cn=Directory Manager on ldap://server.example.com:
    Successfully replaced "repl-release-timeout"
    Copy to Clipboard Toggle word wrap
  4. 선택 사항: IdM 환경에서 IdM CA(인증 기관)를 사용하는 경우 CA 데이터베이스의 repl-release-timeout 속성 값을 수정할 수 있습니다. 이 예에서는 값을 90 초로 늘립니다.

    [root@server ~]# dsconf -D "cn=Directory Manager" ldap://<server_fqdn> replication set *--suffix="o=ipaca" --repl-release-timeout=90*
    Enter password for cn=Directory Manager on ldap://server.example.com:
    Successfully replaced "repl-release-timeout"
    Copy to Clipboard Toggle word wrap
  5. Directory Server를 다시 시작합니다.

    [root@server ~]# systemctl restart dirsrv.target
    Copy to Clipboard Toggle word wrap
  6. IdM 디렉터리 서버의 성능을 모니터링합니다. 개선되지 않으면 이 절차를 반복하고 repl-release-timeout 을 다른 값으로 조정하거나 기본값인 60 초로 조정합니다.

검증

  • nsds5ReplicaReleaseTimeout 특성 값을 표시하고 원하는 값으로 설정되어 있는지 확인합니다.

    [root@server ~]# ldapsearch -D "cn=Directory Manager" -w <directory_manager_password> -b "cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config" | grep nsds5ReplicaReleaseTimeout
    nsds5ReplicaReleaseTimeout: 90
    Copy to Clipboard Toggle word wrap
참고

이 예제의 접미사가 dc=example,dc=com 이지만 등호(=) 및 쉼표(,)를 ldapsearch 명령에서 이스케이프해야 합니다.

다음과 같은 이스케이프 문자를 사용하여 접미사 DN을 cn=dc\3Dexample\2Cdc\3Dcom 으로 변환합니다.

  • \3D replace =
  • \2C 교체

8장. KDC의 성능 조정

사용자, 호스트 및 서비스 인증을 담당하는 KDC(Kerberos Key Distribution Center)의 성능을 최적화하려면 배포의 트래픽 패턴을 기반으로 키 매개변수를 조정합니다.

8.1. KDC 청취 대기열의 길이 조정

/var/kerberos/gradleb5kdc.conf 파일의 [kdcdefaults] 섹션에서 kdc_tcp_listen_backlog 옵션을 설정하여 KDC 데몬의 수신 대기열 길이의 크기를 조정할 수 있습니다. 일부 IdM 배포에서는 높은 수준의 Kerberos 트래픽이 발생하는 일부 IdM 배포에서는 기본값 5 가 너무 낮을 수 있지만 이 값을 너무 높은 성능이 저하됩니다.

Expand

기본값

5

유효한 범위

1 - 10

절차

  1. 텍스트 편집기에서 /var/kerberos/gradleb5kdc/kdc.conf 파일을 엽니다.
  2. TCP 수신 백 로그를 원하는 값 (예: 7) 으로 설정합니다.

    [kdcdefaults]
     ...
     kdc_tcp_listen_backlog = 7
    Copy to Clipboard Toggle word wrap
  3. /var/kerberos/gradleb5kdc/kdc.conf 파일을 저장하고 닫습니다.
  4. KDC를 다시 시작하여 새 설정을 로드합니다.

8.2. 영역당 KDC 동작 제어 옵션

각 Kerberos 영역의 사용자 계정을 잠금 및 잠금 해제하기 위해 KDC는 인증 성공 및 실패한 후 데이터베이스에 씁니다. /etc/gradleb5.conf 파일의 [dbmodules] 섹션에서 다음 옵션을 조정하면 KDC가 정보를 쓰는 빈도를 최소화하여 성능을 향상시킬 수 있습니다.

disable_last_success

true 로 설정하면 pre authentication이 필요한 주요 항목의 마지막 성공적인 인증 필드에 KDC 업데이트가 비활성화됩니다.

Expand

기본값

false

유효한 범위

true 또는 false

disable_lockout

true 로 설정하면 이 옵션은 마지막 실패한 인증에 대한 KDC 업데이트를 억제하고 실패한 암호에서 preauthentication 이 필요한 보안 주체 항목의 필드를 시도합니다. 이 플래그를 설정하면 성능이 향상될 수 있지만 계정 잠금을 비활성화하는 것은 보안 위험으로 간주될 수 있습니다.

Expand

기본값

false

유효한 범위

true 또는 false

8.3. 영역당 KDC 설정 조정

/etc/krb5.conf 파일을 수정하여 특정 Kerberos 영역에 대한 KDC 설정을 조정합니다.

절차

  1. 텍스트 편집기에서 /etc/gradleb5.conf 파일을 엽니다.
  2. [dbmodules] 섹션에서 옵션과 원하는 값을 지정하고 해당 Kerberos 영역에 지정합니다. 이 예제에서는 < kerberos_realm>에 대해 disable_last_ success 변수를 설정 중입니다(예: EXAMPLE.COM).

    [dbmodules]
        <kerberos_realm> = {
            disable_last_success = true
        }
    Copy to Clipboard Toggle word wrap
  3. /etc/gradleb5.conf 파일을 저장하고 닫습니다.
  4. KDC를 다시 시작하여 새 설정을 로드합니다.

8.4. ECDHE 5kdc 프로세스 수 조정

KDC(Key Distribution Center)가 들어오는 연결을 처리하기 위해 시작하는 프로세스 수를 수동으로 조정할 수 있습니다.

기본적으로 IdM 설치 프로그램은 CPU 코어 수를 감지하고 /etc/sysconfig/gradleb5kdc 파일에 값을 입력합니다. 예를 들어 파일에는 다음 항목이 포함될 수 있습니다.

KRB5KDC_ARGS='-w 2'
[...]
Copy to Clipboard Toggle word wrap

이 예에서 KRB5KDC_ARGS 매개변수를 -w 2 로 설정하면 KDC는 기본 프로세스에서 들어오는 연결을 처리하기 위해 두 개의 별도의 프로세스를 시작합니다. 특히 요구 사항에 따라 가상 CPU 수를 쉽게 추가하거나 제거할 수 있는 가상 환경에서 이 값을 조정할 수 있습니다. 포트ECDHE에서 지속적으로 증가하는 TCP/IP 대기열로 인해 성능 문제 또는 IdM 서버가 응답하지 않도록 하려면 KRB5KDC_ARGS 매개변수를 더 높은 값으로 설정하여 더 많은 프로세스 수를 시뮬레이션합니다.

절차

  1. 텍스트 편집기에서 /etc/sysconfig/gradleb5kdc 파일을 엽니다.
  2. KRB5KDC_ARGS 매개변수의 값을 지정합니다. 이 예제에서는 프로세스 수를 10으로 설정하고 있습니다.

    KRB5KDC_ARGS='-w 10'
    [...]
    Copy to Clipboard Toggle word wrap
  3. /etc/sysconfig/gradleb5kdc 파일을 저장하고 종료합니다.
  4. systemd 구성을 다시 로드합니다.

    # systemctl daemon-reload
    Copy to Clipboard Toggle word wrap
  5. ECDHE 5kdc 서비스를 다시 시작합니다.

    # systemctl restart krb5kdc.service
    Copy to Clipboard Toggle word wrap
참고

IdM 상태 점검 유틸리티를 사용하여 KDC가 최적의 작업자 프로세스 수를 사용하도록 구성되어 있는지 확인할 수 있습니다. IdM 상태 점검을 사용하여 KDC 작업자 프로세스의 최적 수 확인을 참조하십시오.

9장. 대규모 IdM-AD 신뢰 배포에 대한 SSSD 성능 튜닝

사용자 및 그룹 정보를 검색하는 것은 SSSD(System Security Services Daemon)에 대해 매우 데이터 집약적인 작업이며 특히 대규모 AD(Active Directory) 도메인에 대한 신뢰가 있는 IdM 배포입니다. SSSD가 ID 공급자에서 검색하는 정보와 기간을 조정하여 이 성능을 향상시킬 수 있습니다.

9.1. 대규모 IdM-AD 신뢰 배포를 위해 IdM 서버에서 SSSD 튜닝

IdM 서버의 SSSD 서비스 구성에 튜닝 옵션을 적용하여 대규모 AD 환경에서 정보를 검색할 때 응답 시간을 개선합니다.

사전 요구 사항

  • /etc/sssd/sssd.conf 설정 파일을 편집하려면 root 권한이 필요합니다.

절차

  1. 텍스트 편집기에서 /etc/sssd/sssd.conf 설정 파일을 엽니다.
  2. IdM(Identity Management) 도메인의 [domain] 섹션에 다음 옵션을 추가합니다.

    [domain/<idm_domain_name>]
    ignore_group_members = true
    subdomain_inherit = ignore_group_members
    ...
    Copy to Clipboard Toggle word wrap
    참고

    subdomain_inherit 옵션에 나열된 설정은 기본(IdM) 도메인과 신뢰할 수 있는 AD 도메인에 모두 적용됩니다.

  3. 서버에 /etc/sssd/sssd.conf 파일을 저장하고 닫습니다.
  4. SSSD 서비스를 다시 시작하여 구성 변경 사항을 로드합니다.

    [root@client ~]# systemctl restart sssd
    Copy to Clipboard Toggle word wrap

9.2. IdM 서버의 ipa-extdom 플러그인의 구성 시간 조정

IdM 클라이언트는 AD(Active Directory)에서 사용자와 그룹에 대한 정보를 직접 수신할 수 없으므로 IdM 서버는 ipa-extdom 플러그인을 사용하여 AD 사용자 및 그룹에 대한 정보를 수신하며 해당 정보가 요청 클라이언트로 전달됩니다.

ipa-extdom 플러그인은 AD 사용자에 대한 데이터에 대한 SSSD에 요청을 보냅니다. SSSD 캐시에 정보가 없는 경우 SSSD는 AD 도메인 컨트롤러(DC)에서 데이터를 요청합니다. 플러그인이 연결을 취소하고 호출자에게 시간 초과 오류를 반환하는 ipa-extdom 플러그인이 SSSD에서 응답을 대기하는 기간을 정의하는 구성 시간 값을 조정할 수 있습니다. 기본값은 10000밀리초(10초)입니다.

다음 예제에서는 구성 시간 제한을 20초(20000밀리초)로 조정합니다.

주의

구성 시간 제한을 조정할 때 주의하십시오.

  • 500밀리초와 같이 값이 너무 작으면 SSSD에 응답할 시간이 충분하지 않을 수 있으며 요청은 항상 시간 초과를 반환합니다.
  • 30000밀리초(30초)와 같이 너무 큰 값을 설정하면 단일 요청이 이 시간 동안 SSSD에 대한 연결을 차단할 수 있습니다. 한 번에 하나의 스레드만 SSSD에 연결할 수 있으므로 플러그인의 다른 모든 요청을 기다려야 합니다.
  • IdM 클라이언트에서 보낸 요청이 여러 개 있는 경우 IdM 서버의 Directory Server에 대해 구성된 사용 가능한 모든 작업자를 차단할 수 있습니다. 그 결과 서버는 잠시 동안 어떤 종류의 요청에도 응답하지 못할 수 있습니다.

다음과 같은 경우 구성 시간 초과만 변경합니다.

  • AD 사용자 및 그룹에 대한 정보를 요청할 때 자체 검색 타임아웃에 도달하기 전에 IdM 클라이언트가 시간 초과 오류를 자주 수신하는 경우 구성 시간 초과 값이 너무 작아 집니다.
  • IdM 서버의 Directory Server가 잠긴 경우가 많으며 pstack 유틸리티에서 현재 많은 또는 모든 작업자가 ipa-extdom 요청을 처리하는 것으로 보고하는 경우 값은 너무 큽니다.

사전 요구 사항

  • LDAP Directory Manager 암호

절차

  • 다음 명령을 사용하여 구성 시간 제한을ECDHE밀리초로 조정합니다.

    # ldapmodify -D "cn=Directory Manager" -W
    dn: cn=ipa_extdom_extop,cn=plugins,cn=config
    changetype: modify
    replace: ipaExtdomMaxNssTimeout
    ipaExtdomMaxNssTimeout: 20000
    Copy to Clipboard Toggle word wrap

9.3. IdM 서버의 ipa-extdom 플러그인의 최대 버퍼 크기 조정

IdM 클라이언트는 AD(Active Directory)에서 사용자와 그룹에 대한 정보를 직접 수신할 수 없으므로 IdM 서버는 ipa-extdom 플러그인을 사용하여 AD 사용자 및 그룹에 대한 정보를 수신하며 해당 정보가 요청 클라이언트로 전달됩니다.

SSSD가 수신하는 데이터를 저장할 수 있는 버퍼 크기를 조정하는 ipa-extdom 플러그인의 최대 버퍼 크기를 조정할 수 있습니다. 버퍼가 너무 작으면 SSSD에서 ERANGE 오류를 반환하고 플러그인이 더 큰 버퍼로 요청을 다시 시도합니다. 기본 버퍼 크기는 134217728 바이트(128MB)입니다.

다음 예제에서는 최대 버퍼 크기를 256MB(268435456바이트)로 조정합니다.

사전 요구 사항

  • LDAP Directory Manager 암호

절차

  • 다음 명령을 사용하여 최대 버퍼 크기를 268435456바이트로 설정합니다.

    # ldapmodify -D "cn=Directory Manager" -W
    dn: cn=ipa_extdom_extop,cn=plugins,cn=config
    changetype: modify
    replace: ipaExtdomMaxNssBufSize
    ipaExtdomMaxNssBufSize: 268435456
    Copy to Clipboard Toggle word wrap

9.4. IdM 서버에서 ipa-extdom 플러그인의 최대 인스턴스 수 조정

IdM 클라이언트는 AD(Active Directory)에서 사용자와 그룹에 대한 정보를 직접 수신할 수 없으므로 IdM 서버는 ipa-extdom 플러그인을 사용하여 AD 사용자 및 그룹에 대한 정보를 수신한 다음 이 정보를 요청하는 클라이언트로 전달합니다.

기본적으로 ipa-extdom 플러그인은 LDAP 작업자 스레드의 최대 80%를 사용하여 IdM 클라이언트의 요청을 처리하도록 구성됩니다. IdM 클라이언트의 SSSD 서비스에서 AD 신뢰 사용자 및 그룹에 대한 많은 정보를 요청한 경우 이 작업으로 대부분의 LDAP 스레드를 사용하는 경우 LDAP 서비스가 중지될 수 있습니다. 이러한 문제가 발생하면 AD 도메인의 SSSD 로그 파일에 /var/log/sssd__<your-ad-domain-name.com>_.log :과 유사한 오류가 표시될 수 있습니다.

(2022-05-22  5:00:13): [be[ad.example.com]] [ipa_s2n_get_user_done] (0x0040): s2n exop request failed.
(2022-05-22  5:00:13): [be[ad.example.com]] [ipa_s2n_get_user_done] (0x0040): s2n exop request failed.
(2022-05-22  5:00:13): [be[ad.example.com]] [ipa_s2n_exop_done] (0x0040): ldap_extended_operation result: Server is busy(51), Too many extdom instances running.
Copy to Clipboard Toggle word wrap

ipaExtdomMaxInstances 옵션의 값을 설정하여 최대 ipa-extdom 인스턴스 수를 조정할 수 있습니다. 이 값은 0보다 크고 총 작업자 스레드 수보다 작아야 합니다.

사전 요구 사항

  • LDAP Directory Manager 암호

절차

  1. 총 작업자 스레드 수를 검색합니다.

    # ldapsearch -xLLLD cn=Directory\ Manager -W -b cn=config -s base nsslapd-threadnumber
    Enter LDAP Password:
    dn: cn=config
    nsslapd-threadnumber: 16
    Copy to Clipboard Toggle word wrap

    즉, ipaExtdomMaxInstances 의 현재 값은 13입니다.

  2. 최대 인스턴스 수를 조정합니다. 이 예에서는 값을 14로 변경합니다.

    # ldapmodify -D "cn=Directory Manager" -W
    dn: cn=ipa_extdom_extop,cn=plugins,cn=config
    changetype: modify
    replace: ipaExtdomMaxInstances
    ipaExtdomMaxInstances: 14
    Copy to Clipboard Toggle word wrap
  3. ipaExtdomMaxInstances 의 현재 값을 검색합니다.

    # ldapsearch -xLLLD "cn=Directory Manager" -W -b "cn=ipa_extdom_extop,cn=plugins,cn=config" |grep ipaextdommaxinstances
    
    Enter LDAP Password:
    
    ipaextdommaxinstances: 14
    Copy to Clipboard Toggle word wrap
  4. IdM Directory 서버의 성능을 모니터링하고 개선하지 않으면 이 절차를 반복하고 ipaExtdomMaxInstances 변수의 값을 조정합니다.

9.5. 대규모 IdM-AD 신뢰 배포를 위해 IdM 클라이언트에서 SSSD 튜닝

IdM 클라이언트의 SSSD 서비스 구성에 튜닝 옵션을 적용하여 대규모 AD 환경에서 정보를 검색할 때 응답 시간을 개선합니다.

사전 요구 사항

  • /etc/sssd/sssd.conf 설정 파일을 편집하려면 root 권한이 필요합니다.

절차

  1. 캐시되지 않은 단일 로그인이 걸리는 시간(초)을 확인합니다.

    1. IdM 클라이언트에서 SSSD 캐시를 지웁니다.

      [root@client_hostname ~]# sss_cache -E
      Copy to Clipboard Toggle word wrap
    2. time 명령을 사용하여 AD 사용자의 로그인 시간을 측정합니다. IdM 클라이언트에서 동일한 호스트에 로그인하여 AD 사용자로 로컬로 인증합니다.

      [root@client_hostname ~]# time ssh <ad_username>@<ad_domain>@<client_fqdn>
      Copy to Clipboard Toggle word wrap
    3. 가능한 한 빨리 암호를 입력합니다.

      Password:
      Last login: Sat Jan 23 06:29:54 2021 from 10.0.2.15
      [ad_username@ad_domain@client_fqdn ~]$
      Copy to Clipboard Toggle word wrap
    4. 가능한 한 빨리 로그아웃하여 경과 시간을 표시합니다. 이 예에서는 캐시되지 않은 단일 로그인이 약 9 초가 걸립니다.

      [ad_username@ad_domain@client_fqdn /]$ exit
      logout
      Connection to client.example.com closed.
      
      real 0m8.755s
      user    0m0.017s
      sys     0m0.013s
      Copy to Clipboard Toggle word wrap
  2. 텍스트 편집기에서 /etc/sssd/sssd.conf 설정 파일을 엽니다.
  3. Active Directory 도메인의 [domain] 섹션에 다음 옵션을 추가합니다. ECDHE _id_timeout 및ECDHE 5_auth_timeout 옵션을 캐시되지 않은 로그인이 걸리는 시간(초)으로 설정합니다. AD 도메인의 도메인 섹션이 아직 없는 경우 새로 생성합니다.

    [domain/<idm_domain>/<ad_domain>]
    krb5_auth_timeout = 9
    ldap_deref_threshold = 0
    ...
    Copy to Clipboard Toggle word wrap
  4. [pam] 섹션에 다음 옵션을 추가합니다.

    [pam]
    pam_id_timeout = 9
    Copy to Clipboard Toggle word wrap
  5. 서버에 /etc/sssd/sssd.conf 파일을 저장하고 닫습니다.
  6. SSSD 서비스를 다시 시작하여 구성 변경 사항을 로드합니다.

    [root@client_hostname ~]# systemctl restart sssd
    Copy to Clipboard Toggle word wrap

9.6. tmpfs에서 SSSD 캐시 마운트

SSSD(System Security Services Daemon)는 LDAP 오브젝트를 캐시에 지속적으로 씁니다. 이러한 내부 SSSD 트랜잭션은 디스크에 데이터를 쓰므로 RAM(Random-Access Memory)에서 읽고 쓰는 것보다 훨씬 느립니다.

이 성능을 개선하려면 RAM에 SSSD 캐시를 마운트합니다.

고려 사항

  • SSSD 캐시가 RAM에 있는 경우 재부팅 후 캐시된 정보가 유지되지 않습니다.
  • IdM 서버의 SSSD 인스턴스가 동일한 호스트의 Directory Server와의 연결이 끊어질 수 없으므로 IdM 서버에서 이러한 변경을 수행하는 것이 안전합니다.
  • IdM 클라이언트에서 이 조정을 수행하고 IdM 서버에 대한 연결이 끊어지면 연결을 다시 설정할 때까지 사용자가 재부팅 후 인증할 수 없습니다.

사전 요구 사항

  • /etc/fstab 구성 파일을 편집하려면 root 권한이 필요합니다.

절차

  1. tmpfs 임시 파일 시스템을 생성합니다.

    1. RHEL 8.6 이상에서 SSSD 사용자가 config.ldb 파일에 소유하고 있는지 확인합니다.

      # ls -al /var/lib/sss/db/config.ldb
      -rw-------. 1 sssd sssd 1286144 Jun  8 16:41 /var/lib/sss/db/config.ldb
      Copy to Clipboard Toggle word wrap

      /etc/fstab 파일에 다음 항목을 한 줄로 추가합니다.

      tmpfs /var/lib/sss/db/ tmpfs size=300M,mode=0700,uid=sssd,gid=sssd,rootcontext=system_u:object_r:sssd_var_lib_t:s0 0 0
      Copy to Clipboard Toggle word wrap
    2. RHEL 8 버전에서는 8.6 미만에서 config.ldb 파일은 root 사용자가 소유합니다.

      # ls -al /var/lib/sss/db/config.ldb
      -rw-------. 1 root root 1286144 Jun  8 14:15 /var/lib/sss/db/config.ldb
      Copy to Clipboard Toggle word wrap

      /etc/fstab 파일에 다음 항목을 한 줄로 추가합니다.

      tmpfs /var/lib/sss/db/ tmpfs size=300M,mode=0700,rootcontext=system_u:object_r:sssd_var_lib_t:s0 0 0
      Copy to Clipboard Toggle word wrap

      이 예제에서는 300MB 캐시를 생성합니다. IdM 및 AD 디렉터리 크기에 따라 size 매개변수를 튜닝하고 10,000 LDAP 항목당 100MB를 추정합니다.

  2. 새 SSSD 캐시 디렉터리를 마운트합니다.

    [root@host ~]# mount /var/lib/sss/db/
    Copy to Clipboard Toggle word wrap
  3. 이 구성 변경 사항을 반영하려면 SSSD를 다시 시작합니다.

    [root@host ~]# systemctl restart sssd
    Copy to Clipboard Toggle word wrap

/etc/sssd/sssd.conf 구성 파일에서 다음 옵션을 사용하여 IdM 서버 및 클라이언트의 SSSD 성능을 튜닝할 수 있습니다.

9.7.1. IdM 서버의 옵션 튜닝

ignore_group_members

그룹에 속한 모든 사용자와 달리 사용자가 속한 그룹을 아는 것은 사용자를 인증하고 승인할 때 중요합니다. ignore_group_memberstrue 로 설정된 경우 SSSD는 그룹 오브젝트에 대한 정보 자체만 검색하지 않고 해당 멤버가 아닌, 상당한 성능 향상을 제공합니다.

참고

id user@ad-domain.com 명령은 여전히 올바른 그룹 목록을 반환하지만 getent 그룹 ad-group@ad-domain.com 는 빈 목록을 반환합니다.

Expand

기본값

false

권장 값

true

참고

배포에 compat 트리가 있는 IdM 서버가 포함된 경우 이 옵션을 true 로 설정하지 않아야 합니다.

subdomain_inherit

subdomain_inherit 옵션을 사용하면 신뢰할 수 있는 AD 도메인 구성에 ignore_group_members 설정을 적용할 수 있습니다. subdomain_inherit 옵션에 나열된 설정은 main(IdM) 도메인과 AD 하위 도메인에 모두 적용됩니다.

Expand

기본값

none

권장 값

subdomain_inherit = ignore_group_members

9.7.2. IdM 클라이언트의 튜닝 옵션

pam_id_timeout

이 매개 변수는 ID 조회 중에 ID 공급자에 대한 과도한 왕복을 방지하기 위해 PAM 세션의 결과가 캐시되는 기간을 제어합니다. 5 초의 기본값은 복잡한 그룹 멤버십이 IdM 서버 및 IdM 클라이언트 측에서 채워지는 환경에서 충분하지 않을 수 있습니다. CloudEvent_ id_timeout 을 캐시되지 않은 로그인에 걸리는 시간(초)으로 설정하는 것이 좋습니다.

Expand

기본값

5

권장 값

캐시되지 않은 단일 로그인이 걸리는 시간(초)

krb5_auth_timeout

increasing ECDHE5_auth_timeout 을 사용하면 사용자가 많은 그룹의 멤버인 환경에서 복잡한 그룹 정보를 처리할 수 있습니다. 이 값을 캐시되지 않은 로그인에 걸리는 시간(초)으로 설정하는 것이 좋습니다.

Expand

기본값

6

권장 값

캐시되지 않은 단일 로그인이 걸리는 시간(초)

ldap_deref_threshold

역참조 조회는 단일 LDAP 호출에서 모든 그룹 멤버를 가져오는 수단입니다. ldap_deref_threshold 값은 역참조 조회를 트리거하기 위해 내부 캐시에서 누락해야 하는 그룹 멤버 수를 지정합니다. 멤버가 더 적은 경우 개별적으로 조회됩니다. 역참조 조회는 대규모 환경에서 오랜 시간이 걸릴 수 있으며 성능이 저하될 수 있습니다. 역참조 조회를 비활성화하려면 이 옵션을 0 으로 설정합니다.

Expand

기본값

10

권장 값

0

10장. WSGI 프로세스 튜닝

장기 실행 API 프로세스로 인해 요청 오류가 발생하는 경우 이러한 API 프로세스는 튜닝의 이점을 얻을 수 있습니다.

기본적으로 IPA는 64비트 시스템의 API 서비스에 대해 4개의 WSGI(Web Server Gateway Interface) 프로세스를 할당합니다. 이러한 기본 제한은 메모리 보존을 위해 4개의 프로세스로 구현됩니다. WSGI 프로세스 수를 늘리면 더 많은 CPU 사용 및 메모리 소비를 희생할 수 있습니다. 기본적으로 IPA는 WSGI 프로세스당 API에 약 100~ 110MB의 상주 메모리를 사용합니다. 권장 한도인 16개의 프로세스로 튜닝하면 용량은 약 1.3GB입니다.

절차

  • /etc/httpd/conf.d/ipa.conf 파일에서 processes 값을 수정합니다.

    WSGIDaemonProcess ipa processes=<4> threads=1 maximum-requests=500 \
    Copy to Clipboard Toggle word wrap

장기 실행 API 끝점 중 하나가 조정의 이점을 얻을 수 있습니다. 이 튜닝 결정은 사용자가 만드는 것입니다.

예를 들어 OpenStack 설치는 여러 서비스를 포함하는 여러 컨트롤러로 구성됩니다. 각 서비스는 모든 내부 통신이 TLS(Transport Layer Security)를 통해 이루어지도록 인증서를 요청합니다. 컨트롤러 또는 컴퓨팅 노드를 설치하거나 새로 고치면 이러한 인증서를 요청하거나 새로 고칠 수 있습니다. 여러 컨트롤러 또는 컴퓨팅 노드와 관련된 시나리오에서는 인증서 요청 볼륨이 상당히 커질 수 있습니다. 이러한 요청은 자동화되므로 거의 동시에 발생합니다. WSGI 스레드 수를 늘리면 설치가 완료될 수 있습니다.

10.1. IPA 서버 성능을 개선하기 위해 CPU 사용량 최적화

대용량 인증서 발급 작업 중에 성능 제한이 발생하면 CPU 및 WSGI(Web Server Gateway Interface) 프로세스 수를 조정하면 동시 요청을 처리하는 IPA 서버의 기능을 크게 향상시킬 수 있습니다.

4개의 CPU와 70개의 클라이언트로 구성된 서버에서 각각 7개의 인증서를 요청하는 서버(490개)를 통해 요청 볼륨이 서버의 처리 용량을 초과하면 서버 시간 초과가 발생했습니다.

CPU 수를 8개로 늘리고 WSGI 프로세스 수를 8개로 늘리면 인증서 처리 용량을 630개의 인증서로 늘어났습니다. CPU 수가 100% 늘어남에도 4개의 CPU 구성보다 2 percent 증가합니다. CPU 수를 16으로 추가로 늘리면 8 WSGI 프로세스로만 성능 향상이 발생하지 않았습니다. 그러나 WSGI 프로세스 수를 16으로 늘리면 서버는 110개의 클라이언트와 함께 770개의 인증서를 처리하여 8 CPU 설정보다 22% 개선되었습니다.

평균적으로 CPU 수를 두 배로 늘리면 WSGI 프로세스가 적절하게 튜닝된 한 인증서 발행 용량이 25% 증가했습니다. 이를 통해 병목 현상을 방지하고 서버 성능을 최적화하기 위해 CPU 및 WSGI 프로세스를 함께 스케일링해야 할 필요성이 강조됩니다.

법적 공지

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동