3 .6 .4 最佳化SQL Server記憶體酉己置

來源:互聯網
上載者:User

標籤:can   記憶體配置   一點   seconds   ota   form   鎖定   殺毒軟體   art   

3 .6 .4 最佳化SQL Server記憶體酉己置
1 .最小和最大伺服器記憶體
這兩個配置用於控制SQL Server可用記憶體的大小。對於最小記憶體,在 SQL Server服務 啟動時,不會馬上達到這個設定值,而是僅使用最小的需求記憶體,然後按需增長,一旦增
長到最小記憶體設定值時,SQL Server將不會再釋放記憶體。最大記憶體用於設定記憶體使用量的上 限,可以使用SSMS或者sp_COnfigU re來配置。需要提醒的是,這裡的“最大記憶體”實際

上指的是Buffer Pool,在 64位系統中,如果沒有控制好記憶體而導致閒置實體記憶體不足,

會引起Windows削減SQL Server的工作集。

如何計算合適的最大記憶體?可以參考以下資訊。

(1 ) 監控SQL Server的最大記憶體使用量情況 可以通過效能監控器的 MSSQL$<instance>:Memory Manager\Total Server Memory (K.B) 計數器來監控SQL Server總的Buffer Pool使用方式。如果SQL Server所需的實體記憶體超

過了現有的可用數量,這個值就會降低,而在釋放記憶體後,這個值則會升高。可以在一開

始把這個值設定得低一點,然後通過監控來適當地進行調整。

(2 ) SQL Server潛在的最大記憶體使用量

在考慮潛在使用時,很重要的一點是對串連伺服器和外部預存程序的調用,在後期開

發中,這部分內容可能會非計劃地加入。一般來說,每個線程會使用0.5MB (32位)或者

2MB (64位)的記憶體,還要保證大概有512MB可以用於這部分的使用。

另外,一些大型企業可能會使用第三方備份軟體、殺毒軟體等,這些也會影響SQL

Server的記憶體使用量。最好預留1? 3GB的記憶體給這些軟體使用。

2 .檢查最大記憶體配置是否合理

在搭建新伺服器時,該怎麼去決定配置的最大伺服器記憶體是多少呢?最直接的答案是:

從低開始設定,然後進行周期性監控(開始時監控周期要比較短,以便儘快發現問題),並

按需調整。或者使用效能計數器來監控,比如通過MSSQL$<instance>:Buffer Manager\Page Life Expectancy (PLE)和 Memory\Available Mbytes 來監控。

PLE計數器用於表示SQL Server的資料緩衝在記憶體中的時間,在理想情況下該時間越 長越好,這是記憶體壓力指標之一。如果小於300s,就要檢查指標Available Mbytes 了。 Available Mbytes表示Windows上當前有多少實體記憶體沒有被使用。國外專家建議的 標準是最少保留100MB。當然不要把最低標準當作最低配置,應儘可能保證有GB層級的

可用記憶體。

如果PLE很低,但是可用記憶體數很高,那麼應該調高最大伺服器記憶體,因為這樣可以

增加PLE的時間。相反,如果可用記憶體很低,但是PLE很高,那就需要降低最大記憶體配置

來釋放記憶體給Windows。下面是部分配置樣本。 □最大伺服器記憶體30GB,伺服器有32GRAM,PLE平均值為10000,可用記憶體為

90M B,那麼最少降低500MB最大伺服器記憶體。

□最大伺服器記憶體46G B ,伺服器有50G RAM, PLE平 均 值 為 1 0 .可用記憶體為

1500MB,那麼應提高最大伺服器記憶體500? 1000MB。

□最大伺服器記憶體60G B ,伺服器有60GRAM, PLE平均值為5 0 ,可用記憶體為20M,

那麼應降低100MB最大記憶體,或者增加更多的RAM (最直接的方法)。

3 . 鎖定記憶體頁

鎖定記憶體頁(Lock Pages in Memory, LPIM )是在 Windows 和 SQL Server 之間發生問

題時的應急處理方案,在舊版本(比如Windows Server 2003及以前版本)中,效果不佳。 如果在作業系統上沒有充足的實體記憶體可用於支援其他請求,會強制回收某些應用的內

存。這對SQL Server的記憶體配置是毀滅性打擊。可能會在SQL Server的錯誤記錄檔中看到 類似的話。

A significant part of sql server process memory has been paged out. This may result in a performance degradation. Duration: 0 seconds. Working set (KB): 1086400, committed (KB): 2160928, memory utilization: 50%.

從 Windows Server 2008開始,這個現象有了明顯的改進,但是還會出現。對於這類情 況,可以把最大伺服器記憶體調整到適當的大小,保證Windows有足夠的記憶體來運行其他應 用。另外也可以使用SQL Server來鎖定記憶體頁。 如果啟用了 LPIM, SQL Server的 Buffer Pool頁 會 被 “鎖定”,並且不允許作業系統 強行收回=在頁被鎖定之後,這部分空間將不會算人可用記憶體中。但是只有SQL Server的 Buffer Pool分配的頁才可以被鎖定,作業系統依舊可以收回其他記憶體,包括SQL Server依 賴的進程記憶體。

3 .6 .4 最佳化SQL Server記憶體酉己置

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.