특정 모듈 또는 필터 드라이버가 로드될 때 성능 및 일관성 문제

원래 제품 버전: SQL Server
원본 KB 번호: 2033238, 2454053

증상

다음 시나리오 중 하나를 고려합니다.

  • 특정 모듈은 SQL Server 프로세스 주소 공간(Sqlservr.exe)에 로드됩니다.
  • 특정 필터 드라이버는 SQL Server 구성 요소를 실행하는 시스템에 로드됩니다.

시나리오에서는 SQL Server 데이터베이스 엔진의 성능 저하 및 일관성 문제가 발생할 수 있습니다.

  • 응답하지 않는 다양한 오류 메시지 및 조건(17883, 애플리케이션 제한 시간 메시지, SQL Server 내 심각한 차단과 같은 스케줄러 메시지 SQL Server)에 대한 보고서입니다.
  • 동시 부하 또는 작업의 양이 비정상적으로 무겁지 않더라도 SQL Server 응답 속도가 느립니다.
  • 예외(예: 액세스 위반), 데이터베이스 일관성, 어설션 메시지 또는 예기치 않은 프로세스 종료에 대한 중요한 오류 메시지입니다.
  • SQL Server In-Memory 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) 목록은 ListDlls 또는 Process Explorer 같은 다양한 도구를 통해 가져올 수 있습니다.

드라이버 필터링

필터 드라이버는 특정 종류의 기능을 제공하기 위해 애플리케이션 설치 프로그램의 일부로 시스템에 설치할 수 있습니다. 예를 들어 바이러스 백신 보호, 온라인 백업, 암호화 서비스, 데이터 압축 또는 조각 모음 기능이 있습니다. 이러한 필터 드라이버는 Windows 파일 I/O 스택에 자신을 삽입하여 파일 시스템 요청의 동작을 향상시키거나 변경합니다.

일부 조건에서는 이러한 요청을 완료하는 데 시간이 오래 걸리거나 과도한 리소스를 사용할 수 있습니다. 또한 동일한 드라이버 스택에 있는 다른 필터 드라이버 간에는 어떤 형태의 비호환성이 있을 수 있습니다.

SQL Server 일반적으로 많은 파일 시스템 I/Os를 내보냅니다(일부는 평균보다 큼). 따라서 I/O 강도가 낮은 다른 실행 중인 애플리케이션에 비해 필터 드라이버 문제는 SQL Server 더 심각한 영향을 미칩니다.

참고

삽입된 DLL과 달리 필터 드라이버(일반적으로 .sys 확장)는 커널 엔터티이므로 사용자 프로세스 세부 정보에 표시되지 않습니다. Windows 기본 제공 fltmc.exe 같은 도구를 사용하여 설치된 미니필터를 검색할 수 있습니다.

해결 방법

경고

해결 방법으로 인해 컴퓨터나 네트워크가 악의적인 사용자나 바이러스와 같은 악성 소프트웨어의 공격에 취약해질 수 있습니다. 이 해결 방법은 권장하지 않지만 사용자의 재량에 따라 이 해결 방법을 구현할 수 있도록 이 정보를 제공하고 있습니다. 그러므로 이 해결 방법을 사용하여 발생하는 모든 위험은 전적으로 사용자 책임입니다.

이러한 문제를 해결하려면 문제를 일으키는 필터 드라이버 또는 모듈을 식별합니다. 그런 다음, 다음 방법 중 하나 또는 전부를 적절하게 시도합니다. 필터 드라이버 또는 모듈을 식별하는 데 도움이 되도록 가능한 필터 드라이버 및 모듈 목록을 검사 자세한 내용을 확인하세요.

  • 모듈, 필터 드라이버 또는 애플리케이션의 공급업체에 문의하여 업데이트를 검사. 사용 가능한 모든 업데이트를 적용합니다.
  • SQL Server 워크로드 또는 작업을 방해하지 않도록 필터 드라이버 또는 관련 애플리케이션을 구성합니다.
  • 필터 드라이버가 시스템에 로드되는 것을 사용하지 않도록 설정합니다.
  • 특정 모듈을 SQL Server 프로세스에 로드하지 않도록 애플리케이션을 구성합니다.
  • 드문 경우지만 모듈 또는 필터 드라이버 및 관련 애플리케이션을 제거하여 SQL Server 프로세스 및 시스템에 대한 안정성을 복원해야 할 수 있습니다.

문제를 일으킬 수 있는 필터 드라이버 및 모듈 목록

다음 목록은 성능 문제를 일으킬 수 있는 필터 드라이버 및 모듈을 식별하는 데 도움이 됩니다. 문제에 대한 반복적인 진단 및 추적 데이터 집합을 수집할 수 있습니다.

  • ENTAPI.DLL

    Microsoft SQL Server 실행하는 서버에 McAfee VirusScan Enterprise를 설치한 다음 SQL Server 모니터링하도록 이 소프트웨어를 구성하면ENTAPI.DLLSQL Server 프로세스에 로드됩니다. 이 모듈이 로드되면 중요한 Win 32 API도 SQL Server 프로세스 내에서 우회됩니다. 이 모듈이 SQL Server 프로세스에 로드되는 경우 버퍼 오버플로 보호와 같은 다양한 고급 모니터링에서 Sqlservr.exe 제외하도록 McAfee VirusScan Enterprise를 구성합니다.

  • HIPI.DLL, HcSQL.DLL, HcApi.DLLHcThe.DLL

    이러한 DLL 파일은 SQL Server 동일한 시스템에 McAfee 호스트 침입 방지 소프트웨어를 설치하는 경우 SQL Server 프로세스에 로드됩니다. 이 모듈이 SQL Server 프로세스에 로드되는 경우 모니터링 목록에서 Sqlservr.exe 제외하도록 McAfee 호스트 침입 방지를 구성합니다.

  • SOPHOS_DETOURED.DLL, SWI_IFSLSP_64.DLLSOPHOS_DETOURED_x64.DLL

    이러한 DLL 파일은 SQL Server 실행 중인 서버에 Sophos 바이러스 백신 프로그램을 설치하는 경우 SQL Server 프로세스에 로드됩니다. 이 모듈이 SQL Server 프로세스에 로드되는 경우 이 모듈을 SQL Server 프로세스에 로드하지 않도록 AppInit_Dlls 레지스트리 하위 키를 구성할 수 있습니다.

  • PIOLEDB.DLLPISDK.DLL

    이러한 DLL 파일은 PI OLEDB 공급자를 사용하여 PI 서버의 데이터에 액세스하거나 PI SDK를 사용하는 확장 저장 프로시저를 사용하는 경우 SQL Server 프로세스에 로드됩니다. 이러한 모듈이 SQL Server 프로세스에 로드되는 경우 이러한 모듈의 공급업체에 문의하여 OLEDB 공급자를 out-of-process 공급자로 구성합니다. 이 구성은 이러한 모듈을 SQL Server 프로세스에 로드할 필요가 없도록 하는 데 도움이 됩니다.

  • UMPPC*.DLLSCRIPTCONTROL*.DLL

    이러한 DLL 파일은 CrowdStrike 바이러스 백신/엔드포인트 보호 프로그램에 대한 추가 사용자 모드 데이터 방지 설정을 사용하도록 설정하는 경우 SQL Server 관련 프로세스의 주소 공간에 로드됩니다. SQL Server 에이전트 작업을 실행할 때 새 프로세스를 만들려고 시도하는 동안 오류가 발생할 수 있습니다. SQL Server Management Studio 시작하는 동안 오류가 발생할 수 있습니다. SQL Server 메모리 덤프를 생성하기 위해 SQLDumper.exe 시작하지 못하는 것을 볼 수도 있습니다. 문제와 관련된 정보를 사용하여 Crowdstrike 지원에 문의하고 수정 사항을 사용할 수 있는지 묻는 것이 좋습니다.

  • perfiCrcPerfMonMgr.DLL

    이 DLL 파일은 추세 Micro OfficeScan 클라이언트를 설치하는 경우 SQL Server 프로세스에 로드됩니다. 추세 마이크로 엔드포인트 제품에 대한 권장 검사 제외 목록에서 소프트웨어 게시자 제외 목록 설정을 참조하세요.

  • MFEBOPK.SYS

    이 필터 드라이버는 McAfee VirusScan Enterprise의 Buffer Overflow Protection 기능에 사용됩니다. 이 기능을 사용하도록 설정한 경우 sqlservr.exe 로 보호되는 Buffer Overflow Protection프로세스 목록 중 하나임을 알 수 있습니다. SQL Server 실행 중인 시스템에 이 필터 드라이버가 있는 경우 해결 방법 섹션에 지정된 작업을 수행해야 합니다. 자세한 내용은 높은 영향 문제: 여러 문제로 인해 서버가 응답하지 않을 수 있음을 참조하세요.

  • NLEMSQL64.SYSNLEMSQL.SYS

    이 필터 드라이버는 NetLib Encryptionizer-Software에 의해 설치됩니다. 이 필터 드라이버가 SQL Server 실행 중인 컴퓨터에 설치되어 있고 네트워크 공유에 백업을 수행하면 운영 체제 오류 1: 잘못된 함수를 반환하는 오류가 발생할 수 있습니다. 이 문제를 resolve 소프트웨어 공급업체에 문의하여 필터 드라이버에 대한 업데이트를 가져옵니다.

  • MFETDIK.SYS

    이 필터 드라이버는 McAfee VirusScan Enterprise 및 McAfee McShield 제품의 기능에 사용됩니다 McAfee Anti-Virus Mini-Firewall . 이 기능을 사용하도록 설정한 경우 sqlservr.exe 기능에서 모니터링하는 Anti-Virus 프로세스 목록 중 하나임을 알 수 있습니다. SQL Server 실행 중인 시스템에 이 필터 드라이버가 있는 경우 해결 방법 섹션에 지정된 작업을 수행해야 합니다. 바이러스 백신 구성의 낮은 위험 프로세스 목록에 SQL Server 프로세스를 추가하는 것도 고려할 수 있습니다.

참조

타사 정보 고지 사항

이 문서에 나와 있는 다른 공급업체 제품은 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft는 이들 제품의 성능이나 안정성에 관하여 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다.

타사 연락처 고지

Microsoft는 이 항목에 대한 추가 정보를 찾는 데 도움이 되는 타사 연락처 정보를 제공합니다. 이 연락처 정보는 공지 없이 변경될 수 있습니다. Microsoft는 타사 연락처 정보의 정확성을 보장하지 않습니다.

타사 정보 및 솔루션 고지 사항

본 문서의 정보 및 솔루션은 문서를 게시할 때 이러한 문제에 대한 Microsoft Corporation의 당시 관점을 나타냅니다. 이 솔루션은 Microsoft나 타사 공급업체를 통해 구할 수 있습니다. Microsoft가 본 문서에 언급된 특정 타사 공급업체나 타사 솔루션을 특별히 권장하는 것은 아닙니다. 본 문서에 언급되지 않은 다른 타사 공급업체나 타사 솔루션이 있을 수도 있습니다. Microsoft는 변화하는 시장 환경에 대처해야 하므로 본 문서의 정보를 Microsoft에서 책임지는 것으로 해석해서는 안 됩니다. Microsoft는 Microsoft나 위에 언급된 타사 공급업체가 제시한 정보 또는 솔루션 일체에 대해 정확성을 보장하거나 보증하지 않습니다.

Microsoft는 보증을 하지 않으며 명시적, 묵시적 또는 법적인 모든 의사 표현, 보증 및 조건을 배제합니다. 이러한 조건에는 서비스, 솔루션, 제품 또는 기타 자료 또는 정보와 관련하여 타이틀, 비침해, 만족스러운 조건, 상품성 및 특정 목적에 대한 적합성의 표현, 보증 또는 조건에만 국한되지 않습니다. Microsoft는 어떠한 경우에도 본 문서에 언급된 타사 솔루션에 대해 책임을 지지 않습니다.