一臺新服務(wù)器,內(nèi)存配置有4GB,開機也正確顯示4G,但安裝了WIN2003SP1以后,系統(tǒng)顯示只有3.37G,原以為內(nèi)存有硬件故障,后經(jīng)檢查,按如下做。
1.打開系統(tǒng)中的大內(nèi)存支持(windows)
若要啟用 Windows 2000 Advanced Server 或 Windows 2000 Datacenter Server 支持
大于4GB的物理內(nèi)存,必須將參數(shù) /pae 添加到 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
改為
[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
這個改好后,要重啟系統(tǒng)的
2.啟用鎖定內(nèi)存頁選項(windows)
啟用鎖定內(nèi)存頁選項
在"開始"菜單上單擊"運行"子菜單,然后在"打開"框中鍵入"gpedit.msc"。
在"組策略"控制臺上,展開"計算機配置",然后展開"Windows 設(shè)置"。
展開"安全設(shè)置",然后展開"本地策略"。
選擇"用戶權(quán)限分配"復(fù)選框。
詳細(xì)資料窗格中隨即顯示出策略。
在詳細(xì)資料窗格中,雙擊"鎖定內(nèi)存頁"。
在"本地安全策略設(shè)置"對話框中,單擊"添加"按鈕。
在"選擇用戶或組"對話框中,添加有權(quán)運行 sqlservr.exe 的帳戶。
3.啟用SQL的AWE
若要啟用 AWE,請將 awe enabled 設(shè)置為 1。除非指定了 max server memory 的值,否
則 SQL Server 將保留幾乎所有可用內(nèi)存,只留下 128 MB 或更少。
如果已成功啟用該選項,則當(dāng) SQL Server 2000 實例啟動時,SQL Server 錯誤日志中將
出現(xiàn)"已啟用地址窗口擴展"這條消息。
awe enabled 是高級選項。如果正在使用 sp_configure 系統(tǒng)存儲過程更改該設(shè)置,則只有
當(dāng) show advanced options 設(shè)置為 1 時才能更改 awe enabled。
code 如下,設(shè)定SQL 使用6G的內(nèi)存
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
sp_configure 'max server memory', 6144
RECONFIGURE
GO
必須重新啟動 SQL Server 2000 實例才能使更改生效。
net stop mssqlserver
net start mssqlserver
這樣,SQL 服務(wù)啟動后,就會把6G的內(nèi)存給鎖定,完全供SQL使用
僅 Windows 2000 Datacenter Server、 Windows 2000 Advanced Server、Windows Server 2003、Enterprise Edition 和 Windows Server 2003 Datacenter Edition 支持 PAE。 在 32 位 Windows 中,默認(rèn)情況下將禁 用 PAE,并且必須在 BOOT.INI 文件中設(shè)置 /pae 引導(dǎo)參數(shù)才可啟用 PAE
為什么要這樣做呢,因為32位的系統(tǒng)只能尋址到4G的內(nèi)存空間,通過修改BOOT文件 可以把其余內(nèi)存做為可擴展物理內(nèi)存 但是如果自己內(nèi)存剛好為4G的話 就不建議修改了 效果不是很理想
硬件支持最大的內(nèi)存容量可以這么算:支持最大內(nèi)存容量=2的N次方位。
32位硬件支持的最大內(nèi)存容量換算下來就是2的32次方,換算下來就是4G,64位硬件支持的最大內(nèi)存容量是2的64次方,換算下來就是16EB=16*1024PB=16*1024*1024TB=16*1024*1024*1024GB。
操作系統(tǒng)內(nèi)存支持
Windows
WindowsNT4.0 Server與Enterprise版都屬于32位服務(wù)器操作系統(tǒng),支持最大內(nèi)存都只有4G 。
Windows2000系列服務(wù)器版操作系統(tǒng)可支持容量最高的是數(shù)據(jù)中心版,可支持32G;高級服務(wù)器版只支持最高8G的內(nèi)存容量;2000普通服務(wù)器版只支持最高4G的內(nèi)存容量。
Windows2003Enterprise支持最高32G的內(nèi)存。
新推出的64位Vista最高版本支持最大128G內(nèi)存。
Linux
Linux的Kernel內(nèi)核屬于32位,也只支持最大4G內(nèi)存。
Linux的Bigmem和Smp內(nèi)核,屬于64位操作系統(tǒng),可支持最大64G內(nèi)存。
一些操作系統(tǒng)在內(nèi)核代碼中限制了內(nèi)存位寬,所以就算是64位操作系統(tǒng),不同的版本在默認(rèn)情況下,也都只支持特定的最大內(nèi)存容量,需要進(jìn)行PAE擴展設(shè)置 以達(dá)到最大支持的內(nèi)存容量。比如在Windows2003Enterprise中,如果直接插入4G內(nèi)存,不進(jìn)行任何更改,那系統(tǒng)辨認(rèn)出來的物理內(nèi)存可能 只有3G出頭,需要在系統(tǒng)引導(dǎo)文件里設(shè)置pae內(nèi)存擴展支持。
x86的32架構(gòu)允許的最大內(nèi)存尋址空間為4GB。Intel Physical Address Extension(PAE)是36位內(nèi)存尋址模式,允許32系統(tǒng)尋址能力超過4GB。
PAE需要適當(dāng)?shù)挠布筒僮飨到y(tǒng)支持。處理器為Intel Pentium Pro以上,操作系統(tǒng)支持Windows NT 4.0企業(yè)版,Windows 2000高級服務(wù)器版和數(shù)據(jù)中心版,以及Windows Server 2003企業(yè)版和數(shù)據(jù)中心版。
Windows使用PAE的4KB頁面映射64GB物理內(nèi)存到32位(4GB)虛擬地址空間。Windows 2000和Windows Server 2003中允許PAE的方式是在BOOT.INI中加/PAE開關(guān)。
Address Windows Extensions(AWE)是Windows APIs的一個集,可以從PAE方式獲益,讓應(yīng)用程序可以直接訪問超過4GB的物理內(nèi)存。一些程序如SQL Server 2000企業(yè)版,使用了這些API來編寫,可以在每個處理器的內(nèi)存尋址超過2G時獲得很大性能提升。
編輯BOOT.INI文件激活PAE的方法如下:
打開控制面板中的系統(tǒng)
選擇高級
在啟動和恢復(fù)頁點擊設(shè)置按鈕
點擊編輯,記事本打開BOOT.INI文件
編輯ARC路徑并在后面添加/PAE開關(guān)