跟蹤標記:834 功能: 在64位的windows環境下,為SQL Server開啟這個跟蹤標記,那麼SQL Server 會使用大頁(Large pages)為記憶體緩衝區(buffer pool)分配記憶體,從而可以提高CPU轉換檢測緩衝區(TLB: Translation Lookaside Bu ...
跟蹤標記:834
功能:
在64位的windows環境下,為SQL Server開啟這個跟蹤標記,那麼SQL Server 會使用大頁(Large pages)為記憶體緩衝區(buffer pool)分配記憶體,從而可以提高CPU轉換檢測緩衝區(TLB: Translation Lookaside Buffer)的效率得以提升性能;
大頁(Large Pages): 正常情況下windows記憶體是4KB的頁,而大頁的最小空間是2MB,也就是說分配的時候可能大於2MB;
轉換檢測緩衝區(TLB: Translation Lookaside Buffer):是一個記憶體管理單元,用於改進虛擬地址到物理地址轉換速度;
如何開啟?
跟蹤標記834只能在啟動SQL Server時開啟
1. 打開SQL Server Configuration Manger;
2. 右擊SQL Server實例選擇屬性(Properties);
3. 在啟動參數 (Startup Parameters) 里添加-T834;
4. 保存並重啟SQL Server實例的服務以生效;
5. 開啟成功的話,在SQL Server errorlog里可以看到類似字樣:Using large pages in the memory manager.
備註:
1. 大頁 (Large Pages) 分配只在SQL Server 64位+企業版的SQLOS有效;
2. 需要為SQL Server開啟了Lock Pages In Memory (LPIM);
3. 建議只在SQL Server的專用伺服器上開啟,否則如果記憶體碎片太多或者記憶體不足無法分配大頁,可能會導致SQL Server無法啟動;另外在使用columnstore index的伺服器上,也不建議開啟這個跟蹤標記;
跟蹤標記:845
功能:
Locked Pages In Memory(LPIM)是一個windows特性,用於控制Windows進程不使用虛擬記憶體;
在SQL Server 2012前,如果要對SQL Server進程開啟這一特性,根據版本不同,可能會需要用到跟蹤標記845,詳見下表:
從SQL Server 2012起,如何開啟LPIM?
1. 開始菜單 - 運行 - 輸入gpedit.msc - 回車,以打開組策略;
2. 電腦配置 - Windows 設置 - 安全設置 - 本地策略 - 用戶權利指派
3. 雙擊“鎖定記憶體中的頁”,在“本地安全策略設置”對話框中,單擊“添加”按鈕添加SQL Server服務賬號並確認;
4. 重啟SQL Server服務以使配置生效;
5. 成功開啟LPIM後,在SQL Server errorlog里可以看到類似字樣:Using locked pages in the memory manager.;
備註:
1. 不難發現,在SQL Server 2012前,64位的標準版里開啟LPIM會可能會用到跟蹤標記845,從SQL Server 2012之後就再也不需要了;
2. 如果同時開啟834跟蹤標記和LPIM,那麼errorlog只會顯示:Using large pages in the memory manager.,並不會顯示:Using locked pages in the memory manager.,因為開啟跟蹤標記834的前提是開啟了LPIM;
參考:
Trace Flag 834 and When to Use It
Tuning options for SQL Server when running in high performance workloads
SQL Server and Large Pages Explained
https://blogs.msdn.microsoft.com/psssql/2009/06/05/sql-server-and-large-pages-explained/
Server Memory Server Configuration Options
How to enable the "locked pages" feature in SQL Server 2012
DBCC TRACEON - Trace Flags (Transact-SQL)