Sql-Server
Linux 上的 SQL Server 限制 memorylimitmb 設置
我有一台安裝了 SQL Server 2017 的 64GiB Ubuntu 機器。
memory.memorylimitmb
任何高於 63695 兆字節的設置都將被忽略。將其設置為 67000 MB(大致為 62.3 GiB)仍會導致 SSMS 報告 63695 MB 可用(右鍵點擊伺服器,屬性 - 正常 - 記憶體行)。較低的設置反映在那裡就好了。這導致 SQL Server 沒有使用所有可用記憶體,它只使用 59.2,留下超過 4 個演出空。
同樣,這是我的“mssql.conf”:
[memory] memorylimitmb = 67000
但這是 SSMS 報告的記憶體量:
(注意:這不是“最大記憶體”設置,這是 SSMS 在“伺服器 - 屬性 - 正常 - 記憶體”下簡單說明機器上安裝了多少記憶體的地方)
這是 Linux 顯示可用記憶體的方式。例如,以下面的 Azure 虛擬機為例:
標準 D4s v3(4 vcpus,16 GiB 記憶體)
20.04.1-Ubuntu
如果您查看報告的伺服器可用記憶體(使用上面作為範例伺服器),您將看到報告的數量 16010。所有 SQL Server 所做的只是報告作業系統所說的內容,在這種情況下,即使您將值更改為更大的數字(超過 16 GB)SQL Server 無法執行任何操作,因為這不是作業系統報告的內容(.
MiB 記憶體:總計 16010.9
SQL Server 呼叫作業系統來詢問它所看到的內容,因此只鏡像它所顯示的內容(當 for 的值
memorylimitmb
設置為等於伺服器記憶體時)。請注意,您在 SSMS 中看到了這一點,它只是從 SQL Server DMV 中獲取值。檢測到 16010 MB 的 RAM。這是一條情報資訊; 無需使用者操作。