FIX: Der Arbeitsspeicher überschreitet die konfigurierten Grenzwerte, die durch "memory.memorylimitmb" in SQL Server angegeben werden.
Symptome
SQL Server für Linux entsprechen möglicherweise nicht den Speichergrenzen, die von der Konfigurationsoption "memory.memorylimitmb" festgelegt werden, wie es durch Überwachungstools wie top und ps belegt wird, die speicherauslastung, die die konfigurierten Grenzwerte überschreitet.
Sie stellen z. B. fest, dass der von den Feldern Resident Memory Size (RES) oder resident Memory Usage (RSS) in den folgenden Befehlen gemeldete Speicher höher ist als der von memory.memorylimitmb
.
top -p $(pidof sqlservr | cut -d' ' -f1)
ps -p $(pidof sqlservr | cut -d' ' -f1) -u
Lösung
Dieses Problem wurde in den folgenden kumulativen Updates für SQL Server behoben:
Notiz
Nachdem Sie den Fix angewendet haben, sehen Sie für Server, die die Active Directory-Authentifizierung konfiguriert haben, möglicherweise weiterhin das Problem, oder beachten Sie, dass die Speichergrenzwerte memory.memorylimitmb
schnell verbraucht werden. In diesem Szenario müssen Sie auch die Version von Kerberos v5 (krb5)-Paketen unter Linux auf 1.19.2 oder höher aktualisieren, um einen defcred
Leck zu krb5_gss_inquire_cred()
beheben. Weitere Informationen finden Sie unter Fix defcred leak in krb5_gss_inquire_cred().
Für Red Hat Enterprise Linux (RHEL) 8, Ubuntu 20.04 oder SUSE Linux Enterprise Server (SLES) 12 Distributionen müssen Sie sich möglicherweise an Ihren Linux-Distributionsanbieter wenden, um aktualisierte Pakete für krb5 anzufordern.
Wenn Sie die Pakete nicht aktualisieren können, können Sie das Leck krb5_gss_inquire_cred()
weiterhin umgehen, indem Sie in Ihrer Anwendung poolierte Verbindungen Verbindungszeichenfolge s verwenden.
Überwachen der Speicherauslastung in SQL Server für Linux
Nach der Installation von SQL Server 2022 Kumulatives Update 14 (CU14) oder SQL Server 2019 CU27 oder höher können Sie Systemressourcenwarnungen mithilfe der Spalten system_high_memory_signal_state
in der system_low_memory_signal_state
sys.dm_os_sys_memory
dynamischen Verwaltungsansicht (DMV) überwachen. Wenn system_low_memory_signal_state
dies konsistent angezeigt wird 1
, sollten Sie die Speicherzuweisung für SQL Server erhöhen oder die Abfragen überprüfen, die den meisten Arbeitsspeicher verbrauchen, und beheben Sie dann ihre Speicheranforderungen.
Informationen zu kumulativen Updates für SQL Server
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und Sicherheitsupdates, die sich im vorherigen Build befanden. Es wird empfohlen, den neuesten Build für Ihre Version von SQL Server zu installieren:
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
References
Informieren Sie sich über die Terminologie, die Microsoft zum Beschreiben von Softwareupdates verwendet.
Informationen zum Haftungsausschluss von Drittanbietern
Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.