Problèmes de performances et de cohérence lors du chargement de certains modules ou pilotes de filtre

Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 2033238, 2454053

Symptômes

Envisagez l’un des scénarios suivants :

  • Certains modules sont chargés dans l’espace d’adressage du processus SQL Server (Sqlservr.exe).
  • Certains pilotes de filtre sont chargés dans un système qui exécute SQL Server composants.

Dans les scénarios, vous pouvez rencontrer des problèmes de dégradation des performances et de cohérence de SQL Server moteur de base de données.

  • Rapports de divers messages d’erreur et conditions liés à l’absence de réponse (SQL Server message du planificateur comme 17883, messages de délai d’attente de l’application, blocage grave dans SQL Server).
  • Réponse lente de SQL Server même si la charge ou l’activité simultanée n’est pas exceptionnellement lourde.
  • Exceptions (telles que les violations d’accès), messages d’erreur critiques concernant la cohérence de la base de données, messages d’assertion ou arrêt inattendu du processus.
  • Utilisation 100 % du processeur et temps de récupération de base de données longs lorsque vous utilisez In-Memory tables OLTP dans SQL Server.
  • Utilisation élevée du processeur pour le processus SQL Server, en particulier le temps processeur privilégié.
  • Échecs inattendus ou inexpliqués lorsque SQL Server processus effectuent des appels d’API Windows.
  • Les vidages de mémoire déclenchés pour SQLDumper.exe peuvent ne pas se terminer, ce qui peut empêcher toute activité de résolution des problèmes.

En raison de la nature de ces problèmes, l’identification de la cause racine nécessite souvent un temps de dépannage important et un suivi de bas niveau.

Causes

Ces problèmes se produisent en raison des causes suivantes pour les modules et les pilotes de filtre.

Modules (DLL ou EXE)

Ces problèmes se produisent parce que les applications ou autres logiciels installés sur un serveur exécutant SQL Server peuvent charger certains modules dans le processus de SQL Server (Sqlservr.exe). Cela peut être fait pour atteindre une exigence de logique métier spécifique, une fonctionnalité améliorée ou une surveillance des intrusions. Ces modules peuvent effectuer des activités non prises en charge, notamment en détournant des API Win32 importantes et des routines SQL Server, et en appelant des API à risque. En outre, certains problèmes intrinsèques au sein de ces modules peuvent entraîner une altération des différentes structures de mémoire nécessaires au bon fonctionnement du processus SQL Server.

La liste des modules (DLL) chargés dans un processus donné peut être obtenue via différents outils, tels que ListDlls ou Process Explorer.

Pilotes de filtre

Les pilotes de filtre peuvent être installés sur un système dans le cadre du programme d’installation d’une application pour fournir un certain type de fonctionnalité. Les exemples incluent la protection antivirus, les sauvegardes en ligne, les services de chiffrement et les fonctionnalités de compression ou de défragmentation des données. Ces pilotes de filtre s’insèrent eux-mêmes dans la pile d’E/S de fichiers Windows pour améliorer ou modifier le comportement des demandes de systèmes de fichiers.

Dans certaines conditions, ces demandes peuvent prendre beaucoup de temps ou consommer des ressources excessives. En outre, il peut y avoir une forme d’incompatibilité entre les différents pilotes de filtre présents dans la même pile de pilotes.

SQL Server émet généralement un grand nombre d’E/S du système de fichiers (dont certaines sont plus grandes que la moyenne). Par conséquent, par rapport à d’autres applications en cours d’exécution avec moins d’intensité d’E/S, le problème avec les pilotes de filtre aura un impact plus sérieux sur SQL Server.

Remarque

Contrairement aux DLL injectées, les pilotes de filtre (généralement avec l’extension .sys) ne sont pas visibles dans les détails des processus utilisateur, car il s’agit d’entités du noyau. Vous pouvez utiliser des outils tels que fltmc.exe intégrés windows pour découvrir les minifiltres installés.

Solution de contournement

Avertissement

Cette solution de contournement peut rendre votre ordinateur ou réseau plus vulnérable aux attaques par des utilisateurs ou des logiciels malveillants comme des virus. Nous ne recommandons pas cette solution de contournement, mais nous fournissons ces informations afin que vous puissiez l’implémenter à votre guise. Son utilisation relève de votre responsabilité.

Pour contourner ces problèmes, identifiez le pilote de filtre ou le module à l’origine des problèmes. Ensuite, essayez l’une ou l’autre des méthodes suivantes de manière appropriée. Pour vous aider à identifier le pilote de filtre ou le module, case activée la liste de certains pilotes et modules de filtre possibles pour plus d’informations.

  • Contactez le fournisseur du module, du pilote de filtre ou de l’application pour case activée les mises à jour. Appliquez toutes les mises à jour disponibles.
  • Configurez le pilote de filtre ou l’application associée de manière à ne pas interférer avec la charge de travail ou les opérations SQL Server.
  • Désactivez le chargement du pilote de filtre dans le système.
  • Configurez l’application pour ne pas charger le module spécifique dans le processus SQL Server.
  • Dans certaines rares situations, vous devrez peut-être supprimer le module ou le pilote de filtre et son application associée pour restaurer la stabilité du processus SQL Server et du système.

Liste des pilotes de filtre et des modules qui peuvent provoquer les problèmes

La liste suivante vous aide à identifier les pilotes et modules de filtre susceptibles d’entraîner des problèmes de performances. Vous pouvez collecter un ensemble itératif de données de diagnostic et de suivi pour les problèmes.

  • ENTAPI.DLL

    ENTAPI.DLL est chargé dans le processus de SQL Server si vous installez McAfee VirusScan Enterprise sur un serveur exécutant Microsoft SQL Server, puis que vous configurez ce logiciel pour surveiller SQL Server. Lorsque ce module est chargé, les API Win 32 importantes sont également détournées à l’intérieur du processus SQL Server. Si vous remarquez que ce module est chargé dans SQL Server processus, configurez McAfee VirusScan Enterprise pour exclure Sqlservr.exe de diverses analyses avancées, telles que la protection contre le dépassement de mémoire tampon.

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

    Ces fichiers DLL sont chargés dans le processus SQL Server si vous installez le logiciel McAfee Host Intrusion Prevention sur le même système que SQL Server. Si vous remarquez que ce module est chargé dans SQL Server processus, configurez McAfee Host Intrusion Prevention pour exclure Sqlservr.exe de sa liste de surveillance.

  • SOPHOS_DETOURED.DLL, SWI_IFSLSP_64.DLLet SOPHOS_DETOURED_x64.DLL

    Ces fichiers DLL sont chargés dans le processus SQL Server si vous installez le programme Sophos Antivirus sur un serveur qui exécute SQL Server. Si vous remarquez que ce module est chargé dans le processus SQL Server, vous pouvez configurer la sous-clé de Registre AppInit_Dlls pour éviter de charger ce module dans SQL Server processus.

  • PIOLEDB.DLL et PISDK.DLL

    Ces fichiers DLL sont chargés dans le processus SQL Server si vous utilisez le fournisseur OLEDB PI pour accéder aux données à partir d’un serveur PI ou si vous utilisez des procédures stockées étendues qui utilisent le SDK PI. Si vous remarquez que ces modules sont chargés dans le processus de SQL Server, contactez le fournisseur de ces modules pour configurer le fournisseur OLEDB en tant que fournisseur hors processus. Cette configuration permet d’éviter d’avoir à charger ces modules dans le processus de SQL Server.

  • UMPPC*.DLL et SCRIPTCONTROL*.DLL

    Ces fichiers DLL sont chargés dans l’espace d’adressage de SQL Server processus associés si vous activez le paramètre de prévention des données en mode utilisateur supplémentaire pour les programmes de protection contre les virus/points de terminaison CrowdStrike. Vous pouvez constater des échecs lors de SQL Server Agent tentatives de création de processus lors de l’exécution de travaux. Vous pouvez rencontrer des échecs lors de la tentative de lancement de SQL Server Management Studio. Vous pouvez également constater que SQL Server ne parvient pas à lancer SQLDumper.exe pour générer des images mémoire. Nous vous recommandons de contacter le support Crowdstrike pour obtenir des informations relatives à votre problème et demander si un correctif est disponible.

  • perfiCrcPerfMonMgr.DLL

    Ce fichier DLL est chargé dans le processus SQL Server si vous installez le client Trend Micro OfficeScan. Reportez-vous au paramètre de liste d’exclusion des éditeurs de logiciels dans Liste d’exclusion d’analyse recommandée pour les produits Trend Micro Endpoint.

  • MFEBOPK.SYS

    Ce pilote de filtre est utilisé pour la Buffer Overflow Protection fonctionnalité dans McAfee VirusScan Enterprise. Si cette fonctionnalité est activée, vous remarquerez que sqlservr.exe figure dans la liste des processus protégés par Buffer Overflow Protection. Si vous disposez de ce pilote de filtre sur un système qui exécute SQL Server, vous devez effectuer les actions spécifiées dans la section Solution de contournement. Pour plus d’informations, consultez Problème à impact élevé : les serveurs peuvent ne plus répondre en raison de plusieurs problèmes.

  • NLEMSQL64.SYS et NLEMSQL.SYS

    Ce pilote de filtre est installé par NetLib Encryptionizer-Software. Lorsque ce pilote de filtre est installé sur un ordinateur qui exécute SQL Server et que vous effectuez une sauvegarde sur un partage réseau, vous pouvez rencontrer des échecs qui renvoient l’erreur système d’exploitation 1 : Fonction incorrecte. Pour résoudre ce problème, contactez le fournisseur de logiciels pour obtenir les mises à jour du pilote de filtre.

  • MFETDIK.SYS

    Ce pilote de filtre est utilisé pour la McAfee Anti-Virus Mini-Firewall fonctionnalité des produits McAfee VirusScan Enterprise et McAfee McShield. Si cette fonctionnalité est activée, vous remarquerez que sqlservr.exe figure dans la liste des processus surveillés par la Anti-Virus fonctionnalité. Si vous disposez de ce pilote de filtre sur un système qui exécute SQL Server, vous devez effectuer les actions spécifiées dans la section Solution de contournement. Vous pouvez également envisager d’ajouter SQL Server processus à la liste des processus à faible risque dans la configuration antivirus.

Référence

Exclusion de responsabilité de tiers

Les produits tiers mentionnés dans le présent article sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft exclut toute garantie, implicite ou autre, concernant les performances ou la fiabilité de ces produits.

Exclusion de responsabilité sur les coordonnées externes

Microsoft fournit des informations de contacts externes afin de vous aider à obtenir un support technique sur ce sujet. Ces informations de contact peuvent être modifiées sans préavis. Microsoft ne garantit pas l’exactitude des informations concernant les sociétés externes.

Informations tierces et clause d’exclusion de responsabilité de solution

Les informations et la solution décrites dans ce document représentent l’opinion actuelle de Microsoft Corporation à la date de publication. Cette solution est disponible par le biais de Microsoft ou d’un fournisseur tiers. Microsoft ne recommande aucun fournisseur tiers ou solution tierce spécifique mentionné dans cet article. Il peut exister également d’autres fournisseurs tiers ou solutions tierces non mentionnés dans cet article. Microsoft étant tenue de répondre aux évolutions du marché, ces informations ne doivent pas être interprétées comme un engagement de la part de Microsoft. Microsoft ne peut garantir l’exactitude des informations ou des solutions présentées par Microsoft ou par tout fournisseur tiers mentionné.

Microsoft ne fournit aucune garantie et exclut toute représentation, garantie et condition explicite, implicite ou prévue par la loi, Ces conditions incluent, sans s’y limiter, les représentations, les garanties ou les conditions de titre, d’absence de contrefaçon, de condition satisfaisante, de qualité marchande et d’adéquation à un usage particulier, concernant tout service, solution, produit ou tout autre matériel ou information. En aucun cas, Microsoft ne sera tenue responsable des solutions tierces mentionnées dans cet article.