Partager via


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

Symptômes

SQL Server sur Linux peut ne pas se conformer aux limites de mémoire définies par l’option de configuration memory.memorylimitmb, comme l’illustrent les outils de surveillance tels que les principaux et ps affichant l’utilisation de la mémoire qui dépasse les limites configurées.

Par exemple, vous remarquez que la mémoire signalée par les champs RES (Resident Memory Size) ou Resident Memory Usage (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 :

Note

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

Pour Red Hat Enterprise Linux (RHEL) 8, Ubuntu 20.04 ou SUSE Linux Enterprise Server (SLES) 12 distributions, 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 mises en pool dans votre application chaîne de connexion s.

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

Après avoir installé SQL Server 2022 Cumulative Update 14 (CU14) ou SQL Server 2019 CU27 ou versions ultérieures, vous pourrez surveiller les alertes de ressources système à l’aide des colonnes et system_high_memory_signal_state des system_low_memory_signal_state vues de sys.dm_os_sys_memory gestion dynamique (DMV). Si system_low_memory_signal_state elle s’affiche 1de manière cohérente, envisagez d’augmenter l’allocation de mémoire pour SQL Server ou de passer en revue 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 build précédente. Nous vous recommandons d’installer la dernière build pour votre version de SQL Server :

État

Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « Produits concernés ».

References

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.