Sql Server - 錯誤日誌中有關記憶體的多個錯誤
MSSQL-Server 2017 Express Edition 在我的 Linux 伺服器上執行。
伺服器有4GB RAM。
DB 的總大小為300MB。
我的網站和 sqlserver 在同一台伺服器上,這是一個小型網站,每天最多有 400-300 名訪問者。linux 中的記憶體使用看起來不錯,mssql 只佔用 20% 的記憶體:
一些額外的sql記憶體資訊:
最大伺服器記憶體設置為
2147483647
我猜的預設值。我得到的錯誤:
重新啟動 mssql-service 後 2 天沒有問題,然後它會自我重複。
我很樂意得到一個可以為我解決這個問題的答案,但我也想獲得一個資源,我可以在其中了解與 sql server 相關的記憶體分配/記憶體/頁面/,因為我不是 sql 專家,我是程序員.
您正在顯示一些相互矛盾的資訊。4 GB 伺服器上 20% 的記憶體使用率約為 820 MB,但是,您的螢幕截圖表明 SQL Server 目前消耗了 3.8 到 4 GB 之間的某個位置。
這些錯誤清楚地表明 SQL Server 沒有足夠的記憶體來處理請求。雖然您可以並且應該將最大伺服器記憶體設置設置為 2147483647 以外的值,但這不會改變 SQL Server 需要額外記憶體的事實。
您需要考慮優化伺服器和工作負載,對實例應用最佳實踐以確保它以最佳方式執行,調整您的 SQL 程式碼以確保它沒有使用過多的記憶體,並且您可能需要為伺服器分配額外的記憶體.
重新啟動 mssql-service 後 2 天沒有問題,然後它會自我重複。
這是因為 SQL Server 在重新啟動時會刷新其所有記憶體,並且考慮到您指出的低使用率,它需要一段時間才能再次填滿。將最大伺服器記憶體設置設置為 2 到 3 GB 應該有助於緩解其中一些錯誤,因為 SQL Server 管理記憶體的方式與將設置配置為簡單地消耗盡可能多的記憶體的方式不同,但是,您最終可能會遇到這些錯誤再次因為 4 GB 對於 Web & SQL Server 非常低。
- 這是 Microsoft 提供的SQL Server 記憶體管理體系結構指南的連結。
- 這是 Microsoft 提供的SQL on Linux Performance Best Practices的連結。
- 以下是您可能會發現有用的 SQL Server最佳實踐技巧的集合。