특정 모듈 또는 필터 드라이버가 로드될 때 성능 및 일관성 문제
원래 제품 버전: SQL Server
원래 KB 번호: 2033238, 2454053
증상
다음 시나리오 중 하나를 고려합니다.
- 특정 모듈은 SQL Server 프로세스 주소 공간(Sqlservr.exe)에 로드됩니다.
- 특정 필터 드라이버는 SQL Server 구성 요소를 실행하는 시스템에 로드됩니다.
이 시나리오에서는 SQL Server 데이터베이스 엔진 성능 저하 및 일관성 문제가 발생할 수 있습니다.
- 응답하지 않는 다양한 오류 메시지 및 조건 보고(SQL Server 스케줄러 메시지(예: 17883, 애플리케이션 제한 시간 메시지, SQL Server 내에서 심각한 차단).
- 동시 로드 또는 작업의 양이 비정상적으로 크지 않더라도 SQL Server의 느린 응답입니다.
- 예외(예: 액세스 위반), 데이터베이스 일관성, 어설션 메시지 또는 예기치 않은 프로세스 종료에 대한 중요한 오류 메시지입니다.
- SQL Server에서 메모리 내 OLTP 테이블을 사용하는 경우 100% CPU 사용률 및 긴 데이터베이스 복구 시간입니다.
- SQL Server 프로세스에 대한 높은 CPU 사용량, 특히 권한 있는 프로세서 시간입니다.
- SQL Server 프로세스에서 Windows API를 호출할 때 예기치 않거나 설명할 수 없는 오류가 발생합니다.
- SQLDumper.exe 대해 트리거된 메모리 덤프가 문제 해결 작업을 방해하지 않을 수 있습니다.
이러한 문제의 특성 때문에 근본 원인 식별에는 상당한 문제 해결 시간과 낮은 수준의 추적이 필요한 경우가 많습니다.
원인
이러한 문제는 모듈 및 필터 드라이버에 대한 다음과 같은 원인으로 인해 발생합니다.
모듈(DLL 또는 EXE)
이러한 문제는 SQL Server를 실행하는 서버에 설치된 애플리케이션 또는 기타 소프트웨어가 특정 모듈을 SQL Server 프로세스(Sqlservr.exe)에 로드할 수 있기 때문에 발생합니다. 이는 특정 비즈니스 논리 요구 사항, 향상된 기능 또는 침입 모니터링을 달성하기 위해 수행될 수 있습니다. 이러한 모듈은 중요한 Win32 API 및 SQL Server 루틴을 우회하고 위험한 API 호출을 포함하는 지원되지 않는 작업을 수행할 수 있습니다. 또한 이러한 모듈 내의 일부 본질적인 문제로 인해 SQL Server 프로세스가 올바르게 작동하는 데 필요한 다양한 메모리 구조가 손상될 수 있습니다.
지정된 프로세스에 로드된 모듈(DLL) 목록은 ListDll 또는 프로세스 탐색기 등의 다양한 도구를 통해 가져올 수 있습니다.
필터 드라이버
특정 종류의 기능을 제공하기 위해 애플리케이션의 설치 프로그램의 일부로 시스템에 필터 드라이버를 설치할 수 있습니다. 예를 들어 바이러스 백신 보호, 온라인 백업, 암호화 서비스, 데이터 압축 또는 조각 모음 기능이 있습니다. 이러한 필터 드라이버는 Windows 파일 I/O 스택에 자신을 삽입하여 파일 시스템 요청의 동작을 개선하거나 변경합니다.
일부 조건에서는 이러한 요청을 완료하거나 과도한 리소스를 사용하는 데 시간이 오래 걸릴 수 있습니다. 또한 동일한 드라이버 스택에 있는 다른 필터 드라이버 간에는 어떤 형태의 비호환성이 있을 수 있습니다.
SQL Server는 일반적으로 많은 파일 시스템 I/O를 내보냅니다(일부는 평균보다 큼). 따라서 I/O 강도가 적은 다른 실행 중인 애플리케이션에 비해 필터 드라이버의 문제는 SQL Server에 더 심각한 영향을 미칩니다.
참고 항목
삽입된 DLL과 달리 필터 드라이버(일반적으로 .sys 확장)는 커널 엔터티이므로 사용자 프로세스 세부 정보에 표시되지 않습니다. Windows 기본 제공 fltmc.exe 같은 도구를 사용하여 설치된 미니 필터를 검색할 수 있습니다.
해결 방법
Warning
해결 방법으로 인해 컴퓨터나 네트워크가 악의적인 사용자나 바이러스와 같은 악성 소프트웨어의 공격에 취약해질 수 있습니다. 이 해결 방법은 권장하지 않지만 사용자 고유의 재량에 따라 이 해결 방법을 구현할 수 있도록 이 정보를 제공합니다. 그러므로 이 해결 방법을 사용하여 발생하는 모든 위험은 전적으로 사용자 책임입니다.
이러한 문제를 해결하려면 문제를 일으키는 필터 드라이버 또는 모듈을 식별합니다. 그런 다음 다음 방법 중 하나 또는 모두를 적절하게 시도합니다. 필터 드라이버 또는 모듈을 식별하는 데 도움이 되도록 가능한 필터 드라이버 및 모듈 목록을 확인 하여 자세한 내용을 확인하세요 .
- 업데이트를 확인하려면 모듈, 필터 드라이버 또는 애플리케이션의 공급업체에 문의하세요. 사용 가능한 업데이트를 적용합니다.
- SQL Server 워크로드 또는 작업을 방해하지 않는 방식으로 필터 드라이버 또는 관련 애플리케이션을 구성합니다.
- 필터 드라이버가 시스템에 로드되는 것을 사용하지 않도록 설정합니다.
- 특정 모듈을 SQL Server 프로세스에 로드하지 않도록 애플리케이션을 구성합니다.
- 경우에 따라 SQL Server 프로세스 및 시스템에 안정성을 복원하기 위해 모듈 또는 필터 드라이버 및 관련 애플리케이션을 제거해야 할 수 있습니다.
문제를 일으킬 수 있는 필터 드라이버 및 모듈 목록
다음 목록은 성능 문제를 일으킬 수 있는 필터 드라이버 및 모듈을 식별하는 데 도움이 됩니다. 문제에 대한 진단 및 추적 데이터의 반복 집합을 수집할 수 있습니다.
ENTAPI.DLL
ENTAPI.DLL Microsoft SQL Server를 실행하는 서버에 McAfee VirusScan Enterprise를 설치한 다음 SQL Server를 모니터링하도록 이 소프트웨어를 구성하는 경우 SQL Server 프로세스에 로드됩니다. 이 모듈이 로드되면 중요한 Win 32 API도 SQL Server 프로세스 내에서 우회됩니다. 이 모듈이 SQL Server 프로세스에 로드되는 경우 버퍼 오버플로 보호와 같은 다양한 고급 모니터링에서 Sqlservr.exe 제외하도록 McAfee VirusScan Enterprise를 구성합니다.
HIPI.DLL, HcSQL.DLL, HcApi.DLL 및 HcThe.DLL
이러한 DLL 파일은 SQL Server와 동일한 시스템에 McAfee 호스트 침입 방지 소프트웨어를 설치하는 경우 SQL Server 프로세스에 로드됩니다. 이 모듈이 SQL Server 프로세스에 로드되는 경우 모니터링 목록에서 Sqlservr.exe 제외하도록 McAfee 호스트 침입 방지를 구성합니다.
SOPHOS_DETOURED.DLL, SWI_IFSLSP_64.DLL 및 SOPHOS_DETOURED_x64.DLL
이러한 DLL 파일은 SQL Server를 실행하는 서버에 Sophos 바이러스 백신 프로그램을 설치하는 경우 SQL Server 프로세스에 로드됩니다. 이 모듈이 SQL Server 프로세스에 로드되는 경우 이 모듈을 SQL Server 프로세스에 로드하지 않도록 AppInit_Dlls 레지스트리 하위 키를 구성할 수 있습니다. 자세한 내용은 Windows 7 및 Windows Server 2008 R2 및 AppInit DLL 및 보안 부팅의 AppInit_DLLs 참조하세요.
PIOLEDB.DLL 및 PISDK.DLL
이러한 DLL 파일은 PI OLEDB 공급자를 사용하여 PI 서버의 데이터에 액세스하거나 PI SDK를 사용하는 확장 저장 프로시저를 사용하는 경우 SQL Server 프로세스에 로드됩니다. 이러한 모듈이 SQL Server 프로세스에 로드되는 경우 이러한 모듈의 공급업체에 문의하여 OLEDB 공급자를 Out-of-process 공급자로 구성합니다. 이 구성은 이러한 모듈을 SQL Server 프로세스에 로드할 필요가 없도록 하는 데 도움이 됩니다.
UMPPC*.DLL 및 SCRIPTCONTROL*.DLL
CrowdStrike 바이러스 백신/엔드포인트 보호 프로그램에 대해 추가 사용자 모드 데이터 방지 설정을 사용하도록 설정하면 이러한 DLL 파일이 SQL Server 관련 프로세스의 주소 공간에 로드됩니다. SQL Server 에이전트 작업을 실행할 때 새 프로세스를 만들려고 시도하는 동안 오류가 발생할 수 있습니다. SQL Server Management Studio를 시작하는 동안 오류가 발생할 수 있습니다. SQL Server가 메모리 덤프를 생성하는 SQLDumper.exe 시작하지 못하는 것을 볼 수도 있습니다. 문제와 관련된 정보를 사용하여 Crowdstrike 지원에 문의하고 수정 사항을 사용할 수 있는지 물어보는 것이 좋습니다.
perfiCrcPerfMonMgr.DLL
Trend Micro OfficeScan 클라이언트를 설치하면 이 DLL 파일이 SQL Server 프로세스에 로드됩니다. Trend Micro Endpoint 제품에 대한 권장 검사 제외 목록에서 소프트웨어 게시자 제외 목록 설정을 참조하세요.
MFEBOPK.SYS
이 필터 드라이버는 McAfee VirusScan Enterprise의
Buffer Overflow Protection
기능에 사용됩니다. 이 기능을 사용하도록 설정한 경우 sqlservr.exe 보호되는Buffer Overflow Protection
프로세스 목록 중 하나입니다. SQL Server를 실행하는 시스템에 이 필터 드라이버가 있는 경우 해결 방법 섹션에서 지정한 작업을 수행해야 합니다. 자세한 내용은 높은 영향 문제: 여러 문제로 인해 서버가 응답하지 않을 수 있습니다.NLEMSQL64.SYS 및 NLEMSQL.SYS
이 필터 드라이버는 NetLib Encryptionizer-Software에 의해 설치됩니다. 이 필터 드라이버가 SQL Server를 실행하는 컴퓨터에 설치되어 있고 네트워크 공유에 백업을 수행하는 경우 운영 체제 오류 1: 잘못된 함수를 반환하는 오류가 발생할 수 있습니다. 이 문제를 해결하려면 소프트웨어 공급업체에 문의하여 필터 드라이버에 대한 업데이트를 받습니다.
MFETDIK.SYS
이 필터 드라이버는 McAfee VirusScan Enterprise 및 McAfee McShield 제품의 기능에 사용됩니다
McAfee Anti-Virus Mini-Firewall
. 이 기능을 사용하도록 설정한 경우 sqlservr.exe 기능에서 모니터링하는Anti-Virus
프로세스 목록 중 하나입니다. SQL Server를 실행하는 시스템에 이 필터 드라이버가 있는 경우 해결 방법 섹션에서 지정한 작업을 수행해야 합니다. 바이러스 백신 구성의 위험 수준이 낮은 프로세스 목록에 SQL Server 프로세스를 추가하는 것도 고려할 수 있습니다.
참조
- WDM 드라이버 유형
- Windows에서 커널 모드 필터 드라이버를 일시적으로 비활성화하는 방법
- 우회 또는 유사한 기술로 인해 SQL Server에서 예기치 않은 동작이 발생할 수 있습니다.
- SQL Server 프로세스 외부에서 DLL 기반 COM 개체를 실행하는 방법
타사 정보 고지 사항
이 문서에 나와 있는 다른 공급업체 제품은 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft는 이들 제품의 성능이나 안정성에 관하여 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다.
타사 연락처 고지
이 문서에 포함된 타사의 연락처 정보는 이 항목에 대한 추가 정보를 찾는 데 도움을 주기 위한 것입니다. 이 연락처 정보는 공지 없이 변경될 수 있습니다. Microsoft는 타사 연락처 정보의 정확성을 보증하지 않습니다.
타사 정보 및 솔루션 고지 사항
본 문서의 정보 및 솔루션은 문서를 게시할 때 이러한 문제에 대한 Microsoft Corporation의 당시 관점을 나타냅니다. 이 솔루션은 Microsoft나 타사 공급업체를 통해 구할 수 있습니다. Microsoft가 본 문서에 언급된 특정 타사 공급업체나 타사 솔루션을 특별히 권장하는 것은 아닙니다. 본 문서에 언급되지 않은 다른 타사 공급업체나 타사 솔루션이 있을 수도 있습니다. Microsoft는 변화하는 시장 환경에 대처해야 하므로 본 문서의 정보를 Microsoft에서 책임지는 것으로 해석해서는 안 됩니다. Microsoft는 Microsoft나 위에 언급된 타사 공급업체가 제시한 정보 또는 솔루션 일체에 대해 정확성을 보장하거나 보증하지 않습니다.
Microsoft는 보증을 하지 않으며 명시적, 묵시적 또는 법적인 모든 의사 표현, 보증 및 조건을 배제합니다. 이 조건에는 모든 서비스, 솔루션, 제품 또는 기타 모든 자료나 정보와 관련된 의사 표현, 보증, 제품명 조건, 저작권 비침해, 만족도, 상업성 및 특정 목적에 대한 적합성이 포함되며 이에 국한되지 않습니다. Microsoft는 어떠한 경우에도 본 문서에 언급된 타사 솔루션에 대해 책임을 지지 않습니다.