Problemas de rendimiento y coherencia cuando se cargan determinados módulos o controladores de filtro

Versión del producto original: SQL Server
Número de KB original: 2033238, 2454053

Síntomas

Considere uno de los siguientes escenarios:

  • Determinados módulos se cargan en el espacio de direcciones del proceso de SQL Server (Sqlservr.exe).
  • Determinados controladores de filtro se cargan en un sistema que ejecuta componentes SQL Server.

En los escenarios, puede experimentar problemas de degradación del rendimiento y coherencia de SQL Server motor de base de datos.

  • Informes de varios mensajes de error y condiciones no relacionados con la respuesta (SQL Server mensaje del programador, como 17883, mensajes de tiempo de espera de la aplicación, bloqueo grave dentro de SQL Server).
  • Respuesta lenta de SQL Server incluso si la cantidad simultánea de carga o actividad no es inusualmente pesada.
  • Excepciones (como infracciones de acceso), mensajes de error críticos sobre la coherencia de la base de datos, mensajes de aserción o terminación de procesos inesperada.
  • Uso de CPU del 100 % y tiempos de recuperación largos de la base de datos al usar In-Memory tablas OLTP en SQL Server.
  • Uso elevado de CPU para el proceso de SQL Server, especialmente el tiempo de procesador con privilegios.
  • Errores inesperados o no explicados cuando SQL Server procesos realizan llamadas API de Windows.
  • Los volcados de memoria desencadenados para SQLDumper.exe pueden no completarse dificultando cualquier actividad de solución de problemas.

Debido a la naturaleza de estos problemas, la identificación de la causa principal a menudo requiere un tiempo de solución de problemas significativo y un seguimiento de bajo nivel.

Causas

Estos problemas se producen debido a las siguientes causas para los módulos y controladores de filtro.

Módulos (ARCHIVOS DLL o EXE)

Estos problemas se producen porque las aplicaciones u otro software instalado en un servidor que ejecuta SQL Server pueden cargar determinados módulos en el proceso de SQL Server (Sqlservr.exe). Esto se puede hacer para lograr un requisito de lógica de negocios específico, una funcionalidad mejorada o la supervisión de intrusiones. Estos módulos pueden realizar actividades no admitidas que incluyen el desvío de las API de Win32 importantes y las rutinas de SQL Server, y la llamada a LAS API de riesgo. Además, algunos problemas intrínsecos dentro de estos módulos pueden provocar daños en varias estructuras de memoria que son necesarias para que el proceso de SQL Server funcione correctamente.

La lista de módulos (DLL) cargados en un proceso determinado se puede obtener a través de varias herramientas, como ListDlls o el Explorador de procesos.

Controladores de filtro

Los controladores de filtro se pueden instalar en un sistema como parte del programa de instalación de una aplicación para proporcionar un determinado tipo de funcionalidad. Algunos ejemplos son la protección antivirus, las copias de seguridad en línea, los servicios de cifrado y las instalaciones de compresión o desfragmentación de datos. Estos controladores de filtro se insertan en la pila de E/S de archivos de Windows para mejorar o modificar el comportamiento de las solicitudes del sistema de archivos.

En algunas condiciones, estas solicitudes pueden tardar mucho tiempo en completarse o consumir recursos excesivos. Además, puede haber algún tipo de incompatibilidad entre los diferentes controladores de filtro que están presentes en la misma pila de controladores.

SQL Server suele emitir una gran cantidad de E/S del sistema de archivos (algunas de las cuales son mayores que la media). Por lo tanto, en comparación con otras aplicaciones en ejecución con menos intensidad de E/S, el problema con los controladores de filtro tendrá un impacto más grave en SQL Server.

Nota:

A diferencia de los archivos DLL insertados, los controladores de filtro (normalmente con .sys extensión) no son visibles en los detalles de los procesos del usuario porque son entidades del kernel. Puede usar herramientas como fltmc.exe integradas de Windows para detectar minifiltros instalados.

Solución alternativa

Advertencia

Esta solución alternativa puede hacer que un equipo o una red sean más vulnerables a los ataques de usuarios o de software malintencionados, como los virus. No recomendamos esta solución alternativa, pero proporcionamos esta información para que pueda implementar esta solución alternativa a su entera discreción. Use esta solución alternativa bajo su propia responsabilidad.

Para solucionar estos problemas, identifique el controlador de filtro o el módulo que está causando los problemas. A continuación, pruebe todos o uno de los métodos siguientes correctamente. Para ayudarle a identificar el controlador de filtro o el módulo, consulte la lista de algunos posibles controladores de filtro y módulos para obtener más información.

  • Póngase en contacto con el proveedor del módulo, el controlador de filtro o la aplicación para comprobar si hay actualizaciones. Aplique las actualizaciones que estén disponibles.
  • Configure el controlador de filtro o la aplicación asociada de forma que no interfiera con la carga de trabajo o las operaciones de SQL Server.
  • Deshabilite la carga del controlador de filtro en el sistema.
  • Configure la aplicación para que no cargue el módulo específico en el proceso de SQL Server.
  • En algunas situaciones poco frecuentes, es posible que tenga que quitar el módulo o el controlador de filtro y su aplicación asociada para restaurar la estabilidad en el proceso de SQL Server y el sistema.

Lista de controladores de filtro y módulos que pueden causar los problemas

La lista siguiente le ayuda a identificar los controladores de filtro y los módulos que pueden causar los problemas de rendimiento. Puede recopilar un conjunto iterativo de datos de diagnóstico y seguimiento para los problemas.

  • ENTAPI.DLL

    ENTAPI.DLL se carga en el proceso de SQL Server si instala McAfee VirusScan Enterprise en un servidor que ejecuta Microsoft SQL Server y, a continuación, configura este software para supervisar SQL Server. Cuando se carga este módulo, las API importantes de Win 32 también se desvian dentro del proceso de SQL Server. Si observa que este módulo se carga en SQL Server proceso, configure McAfee VirusScan Enterprise para excluir Sqlservr.exe de varias supervisión avanzadas, como la protección contra desbordamiento de búfer.

  • HIPI.DLL, HcSQL.DLL, HcApi.DLLy HcThe.DLL

    Estos archivos DLL se cargan en el proceso de SQL Server si instala el software McAfee Host Intrusion Prevention en el mismo sistema que SQL Server. Si observa que este módulo se carga en SQL Server proceso, configure McAfee Host Intrusion Prevention para excluir Sqlservr.exe de su lista de supervisión.

  • SOPHOS_DETOURED.DLL, SWI_IFSLSP_64.DLLy SOPHOS_DETOURED_x64.DLL

    Estos archivos DLL se cargan en el proceso de SQL Server si instala el programa Sophos Antivirus en un servidor que ejecuta SQL Server. Si observa que este módulo se carga en el proceso de SQL Server, puede configurar la subclave del Registro AppInit_Dlls para evitar cargar este módulo en SQL Server proceso.

  • PIOLEDB.DLL y PISDK.DLL

    Estos archivos DLL se cargan en el proceso de SQL Server si usa el proveedor OLEDB de PI para acceder a los datos desde un servidor pi o si usa procedimientos almacenados extendidos que usan el SDK de PI. Si observa que estos módulos se cargan en el proceso de SQL Server, póngase en contacto con el proveedor de estos módulos para configurar el proveedor OLEDB como proveedor fuera de proceso. Esta configuración ayuda a evitar la necesidad de cargar estos módulos en el proceso de SQL Server.

  • UMPPC*.DLL y SCRIPTCONTROL*.DLL

    Estos archivos DLL se cargan en el espacio de direcciones de SQL Server procesos relacionados si habilita la configuración de prevención de datos en modo de usuario adicional para los programas Anti-Virus/Endpoint Protection crowdstrike. Es posible que observe errores mientras Agente SQL Server intenta crear nuevos procesos al ejecutar trabajos. Es posible que se produzcan errores al intentar iniciar SQL Server Management Studio. También puede ver que SQL Server no puede iniciar SQLDumper.exe para generar volcados de memoria. Le recomendamos que se ponga en contacto con el soporte técnico de Crowdstrike con información relacionada con su problema y pregunte si hay una corrección disponible.

  • perfiCrcPerfMonMgr.DLL

    Este archivo DLL se carga en el proceso de SQL Server si instala el cliente de Trend Micro OfficeScan. Consulte la configuración de la lista de exclusión del publicador de software en La lista de exclusión de examen recomendado para los productos de Trend Micro Endpoint.

  • MFEBOPK.SYS

    Este controlador de filtro se usa para la Buffer Overflow Protection característica de McAfee VirusScan Enterprise. Si tiene habilitada esta característica, observará que sqlservr.exe está entre la lista de procesos protegidos por Buffer Overflow Protection. Si tiene este controlador de filtro en un sistema que ejecuta SQL Server, debe realizar las acciones especificadas en la sección Solución alternativa. Para obtener más información, consulte Problema de alto impacto: los servidores pueden dejar de responder debido a varios problemas.

  • NLEMSQL64.SYS y NLEMSQL.SYS

    Este controlador de filtro lo instala NetLib Encryptionizer-Software. Cuando este controlador de filtro está instalado en un equipo que ejecuta SQL Server y realiza una copia de seguridad en un recurso compartido de red, es posible que se produzcan errores que devuelvan el error del sistema operativo 1: Función incorrecta. Para resolver este problema, póngase en contacto con el proveedor de software para obtener actualizaciones del controlador de filtro.

  • MFETDIK.SYS

    Este controlador de filtro se usa para la McAfee Anti-Virus Mini-Firewall característica de los productos McAfee VirusScan Enterprise y McAfee McShield. Si tiene habilitada esta característica, observará que sqlservr.exe está entre la lista de procesos supervisados por la Anti-Virus característica. Si tiene este controlador de filtro en un sistema que ejecuta SQL Server, debe realizar las acciones especificadas en la sección Solución alternativa. También podría considerar la posibilidad de agregar procesos de SQL Server a la lista de procesos de bajo riesgo en la configuración de Antivirus.

Referencia

Aviso de declinación de responsabilidades sobre la información de terceros

Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.

Aviso de declinación de responsabilidades sobre la información de contacto de terceros

Microsoft proporciona información de contacto de otros proveedores para ayudarle a encontrar información adicional sobre este tema. Dicha información de contacto puede cambiar sin notificación previa. Microsoft no garantiza la precisión de esta información de contacto de terceros.

Declinación de responsabilidades de soluciones e información de terceros

La información y la solución incluidas este documento representan el punto de vista actual de Microsoft Corporation sobre estos problemas en la fecha en que se publicó el artículo. Esta solución está disponible a través de Microsoft o a través de un proveedor de otro fabricante. Microsoft no recomienda en concreto ningún proveedor ni ninguna solución de otros fabricantes mencionados en este artículo. Puede haber otros proveedores u otras soluciones de terceros que no se describen en este artículo. Microsoft debe hacer frente a las condiciones del mercado en continuo cambio, pero esta información no debe interpretarse como un compromiso por parte de Microsoft. Microsoft no puede garantizar ni respaldar la exactitud de la información o de las soluciones ofrecidas por Microsoft ni por ninguno de los proveedores mencionados.

Microsoft no otorga ninguna garantía y excluye cualquier representación, garantía y condición, ya sea expresa, implícita o legal. Estas condiciones incluyen, entre otras, representaciones, garantías o condiciones de título, no infracción, condición satisfactoria, comerciabilidad y adecuación para un propósito determinado, con respecto a cualquier servicio, solución, producto o cualquier otro material o información. En ningún caso será Microsoft responsable de las soluciones de otros fabricantes mencionadas en este artículo.