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 1
de 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 :
- Dernière mise à jour cumulative pour SQL Server 2022
- Dernière mise à jour cumulative pour SQL Server 2019
É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.