症狀
Linux 上的 SQL Server 可能不符合 memory.memorylimitMB 設定選項所設定的記憶體界限,如 top 和 ps 等監控工具顯示超過設定限制的記憶體使用量就證明了這一點。
例如,您注意到下列命令中 [常駐記憶體大小 (RES) ] 或 [常駐記憶體使用量] (RSS) 欄位所報告的記憶體高於所設定 memory.memorylimitmb的記憶體。
top -p $(pidof sqlservr | cut -d' ' -f1)
ps -p $(pidof sqlservr | cut -d' ' -f1) -u
解決方式
此問題已在下列 SQL Server 累積更新中修正:
注意
套用修正程式之後,對於已設定 Active Directory 驗證的伺服器,您可能仍會看到問題,或注意到 的 memory.memorylimitmb 記憶體限制快速耗用。 在此情況下,您也需要將 Linux 上的 Kerberos v5 版本 (krb5) 套件更新為 1.19.2 或更新版本,以解決 defcred 中的洩漏krb5_gss_inquire_cred()問題。 如需詳細資訊,請參閱 修正 krb5_gss_inquire_cred () 中的 defcred leak 。
對於 Red Hat Enterprise Linux (RHEL) 8、Ubuntu 20.04 或 SUSE Linux Enterprise Server (SLES) 12 發行版,您可能需要連絡 Linux 發行商,以要求 krb5 的更新套件。
如果無法更新套件,您仍然可以使用應用程式連接字串中的集區連線來解決洩漏 krb5_gss_inquire_cred() 。
監視 Linux 上的 SQL Server 中的記憶體使用量
SQL Server CU14) 或 SQL Server 2019 CU27 或更新版本 (安裝 2022 累積更新 14 或更新版本之後,您可以使用動態管理檢視 (DMV) 中的 sys.dm_os_sys_memory 和 system_high_memory_signal_state 欄來system_low_memory_signal_state監視系統資源警示。 如果system_low_memory_signal_state一致顯示 1,請考慮增加 SQL Server 的記憶體配置,或檢閱耗用最多記憶體的查詢,然後解決其記憶體需求。
關於 SQL Server 的累積更新
SQL Server 的每個新累積更新都包含前一個組建中的所有 Hotfix 和安全性修正程式。 建議您安裝適用於您 SQL Server 版本的最新組建:
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。
參考資料
了解 Microsoft 用來說明軟體更新的術語。
協力廠商資訊免責聲明
本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。