共用方式為


修正:記憶體超過 SQL Server 中 memory.memorylimitmb 所指定的設定限制

徵兆

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() 中的解構洩漏。

針對 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 2022 累積更新 14 (CU14) 或 SQL Server 2019 CU27 或更新版本之後,您將能夠使用system_low_memory_signal_state動態管理檢視 (DMV) 中的 sys.dm_os_sys_memorysystem_high_memory_signal_state 數據行來監視系統資源警示。 如果 system_low_memory_signal_state 一致顯示 1,請考慮增加 SQL Server 的記憶體配置,或檢閱耗用最多記憶體的查詢,然後解決其記憶體需求。

關於 SQL Server 的累積更新

SQL Server 的每個新累積更新都包含先前組建中的所有 Hotfix 和安全性修正。 建議您為 SQL Server 版本安裝最新的組建:

狀態

Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。

參考資料

了解 Microsoft 用來說明軟體更新的術語

協力廠商資訊免責聲明

本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。