狀況分析
環境如下:
硬件:IBM3610服務器
系統:windows2003 x32
應用:內部物流系統軟件 C/S架構
數據庫:SQL Server2000
問題:
因爲物流系統架構問題(開發比較早05年開發架構)服務端和客戶端都只能運行在32位環境下
這樣導致系統內存用不上去,一直在3.25G左右
SQL的運行內存一旦上去退步下來
用戶連接量大的時候很卡,併發上不去
最後蒐羅了很多方法,進行32位環境下的內存優化,具體如下:
1.Windows 2003 企業版 打開PAE更好的利用4G以上內存
修改boot.ini文件,如下:
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Advanced Server"
/fastdetect /PAE
2.啓用鎖定內存頁選項(windows)
啓用鎖定內存頁選項
在"開始"菜單上單擊"運行"子菜單,然後在"打開"框中鍵入"gpedit.msc"。
在"組策略"控制檯上,展開"計算機配置",然後展開"Windows 設置"。
展開"安全設置",然後展開"本地策略"。
選擇"用戶權限分配"複選框。
詳細資料窗格中隨即顯示出策略。
在詳細資料窗格中,雙擊"鎖定內存頁"。
在"本地安全策略設置"對話框中,單擊"添加"按鈕。
在"選擇用戶或組"對話框中,添加有權運行 sqlservr.exe 的帳戶。
3.啓用SQL的AWE
code 如下,設定SQL 使用6G的內存
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
sp_configure 'max server memory', 6144
RECONFIGURE
GO
4.必須重新啓動 SQL Server 2000 實例才能使更改生效。
net stop mssqlserver
net start mssqlserver