LDAP 쿼리는 AD 또는 LDS/ADAM 디렉터리 서비스에서 예상보다 더 느리게 실행되며 이벤트 ID 1644가 기록될 수 있습니다.

이 문서에서는 AD LDS 또는 ADAM 디렉터리 서비스를 사용하는 Windows Server 컴퓨터에서 LDAP 쿼리가 느리게 수행되는 문제에 대한 해결 방법을 제공합니다.

적용 대상: Windows Server 2012 R2
원본 KB 번호: 951581

증상

AD LDS(Active Directory Lightweight Directory Services) 또는 AD/AM(Active Directory 애플리케이션 모드) 디렉터리 서비스를 사용하는 Windows Server 컴퓨터에서는 특정 애플리케이션이 예상 성능 수준에서 수행되지 않습니다.

LDAP 쿼리를 추적하기 위해 필드 엔지니어링(디버그) 로깅을 사용하도록 설정하면 다음 이벤트 로그에 LDAP 쿼리가 비효율적인 쿼리임을 보여 줍니다.

참고

이 이벤트에 사용되는 특성은 예제일 뿐입니다.

또한 CPU 사용률이 높고 응답 시간이 느려집니다. 데이터베이스가 디렉터리 서버에서 사용할 수 있는 실제 메모리보다 훨씬 큰 경우 이러한 쿼리를 처리하는 동안 디스크 IO가 증가할 수도 있습니다.

검색 필터에서 특성을 검사하면 모두 정의된 인덱스가 있음을 알 수 있습니다. 또한 특성에 정의된 인덱스가 없으며 스키마 변경을 통해 인덱스를 추가하면 문제가 지속되거나 크게 개선되지 않습니다.

원인

LDAP 쿼리의 네트워크 추적을 만들 때 페이징된 쿼리임을 알 수 있습니다.

LDAP 서버는 페이징된 쿼리를 처리하는 동안 하나의 인덱스만 사용할 수 있습니다. 페이징된 검색에 대한 LDAP 구현은 쿼리에 대한 비용이 많이 드는 컨텍스트를 만들지 않으므로 페이징된 쿼리에 하나의 인덱스만 사용하기 때문입니다.

해결 방법

이 문제를 해결하려면 페이징된 쿼리 컨트롤을 사용하지 않고 쿼리를 보낼 수 있습니다. 이렇게 하면 LDAP 서버가 더 복잡한 필터에 최적화할 수 있습니다.

참고

기본적으로 페이징된 쿼리는 일부 LDAP 클라이언트 라이브러리에 대해 사용하도록 설정됩니다. 따라서 특정 상황에 맞게 페이징된 쿼리를 사용하도록 설정하고 사용하지 않도록 설정하려면 애플리케이션에 추가 코드를 작성해야 할 수 있습니다.

상태

Microsoft는 이것이 문제임을 확인했습니다.

참조

Active Directory 및 LDS 진단 이벤트 로깅을 구성하는 방법