CORRECTIF : la mémoire dépasse les limites configurées spécifiées par memory.memorylimitmb dans SQL Server

Symptômes

Il est possible que SQL Server sur Linux ne respecte pas les limites de mémoire définies par l’option de configuration Memory.MemoryLimitMb, comme en témoignent les outils de surveillance tels que Top et PS affichant une utilisation de la mémoire supérieure aux limites configurées.

Par exemple, vous remarquez que la mémoire signalée par les champs Taille de la mémoire résidente (RES) ou Utilisation de la mémoire résidente (RSS) dans les commandes suivantes est supérieure à la mémoire configurée par memory.memorylimitmb.

top -p $(pidof sqlservr | cut -d' ' -f1)

ps -p $(pidof sqlservr | cut -d' ' -f1) -u

Résolution

Ce problème est résolu dans les mises à jour cumulatives suivantes pour SQL Server :

Remarque

Après l’application du correctif, pour les serveurs sur lesquels l’authentification Active Directory est configurée, il se peut que vous rencontriez toujours le problème ou remarquiez que les limites de mémoire de memory.memorylimitmb sont consommées rapidement. Dans ce scénario, vous devez également mettre à jour la version des packages Kerberos v5 (krb5) sur Linux vers 1.19.2 ou des versions ultérieures pour résoudre une defcred fuite dans krb5_gss_inquire_cred(). Pour plus d’informations, consultez Corriger la fuite de defcred dans krb5_gss_inquire_cred().

Pour les distributions Red Hat Enterprise Linux (RHEL) 8, Ubuntu 20.04 ou SUSE Linux Enterprise Server (SLES) 12, vous devrez peut-être contacter votre fournisseur de distribution Linux pour demander des packages mis à jour pour krb5.

Si vous ne pouvez pas mettre à jour les packages, vous pouvez toujours contourner la fuite en krb5_gss_inquire_cred() utilisant des connexions regroupées dans les chaînes de connexion de votre application.

Surveiller l’utilisation de la mémoire dans SQL Server sur Linux

Après avoir installé la mise à jour cumulative 14 (CU14) de SQL Server 2022 ou SQL Server 2019 CU27 ou versions ultérieures, vous pouvez surveiller les alertes de ressource système à l’aide des system_low_memory_signal_state colonnes et system_high_memory_signal_state en sys.dm_os_sys_memory mode de gestion dynamique (DMV). Si system_low_memory_signal_state le problème s’affiche 1constamment, envisagez d’augmenter l’allocation de mémoire pour SQL Server ou examinez les requêtes qui consomment le plus de mémoire, puis résolvez leurs besoins en mémoire.

À propos des mises à jour cumulatives pour SQL Server

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et correctifs de sécurité qui se trouvaient dans la version précédente. Nous vous recommandons d’installer la version la plus récente pour votre version de SQL Server :

État

Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Références

En savoir plus à propos de la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.

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.