在前段有提到,32位元的才要設定,64位元的就不用了,原因在於32位元預設最多可定址4GB(2^32)的記憶體空間,操作系統保留2G,另外2G給應用程式進行使用,而64位元可以存取的虛擬記憶體上限為16TB(2^40),雖然話說如此,但看的到不見得吃的到,還要再看作業系統本身的限定.
32位元 | 64位元 | |
Windows XP Pro | 4GB | 128GB |
Windows 2003 Server Standard | 4GB | 32GB |
Windows 2003 Server Enterprice | 32GB | 1TB |
Windows 2003 Server Enterprice SP1 | 64GB | 1TB |
Windows 2003 Server DataCenter | 64GB | 1TB |
Windows 2003 Server DataCenter SP1 | 128GB | 1TB |
Windows Visita 家用入門 | 4GB | 8GB |
Windows Visita 家用進階 | 4GB | 16GB |
Windows Visita 商用入門 | 4GB | 128GB |
Windows Visita 商用進階 | 4GB | 128GB |
Windows Visita 旗艦版 | 4GB | 128GB |
其它的作業系統,就自己去找看看了,未來的SP更新是否會提升上限,也不得而知,所以這是截至目前為此的資料. 本文的重點在於告訴大家怎麼去用4G以上的記憶體.
首先,BIOS一定要先抓到全部的記憶體,這有點廢話,但也是重點,BIOS抓不到,後續也都是白講,而BIOS抓不到要怎麼辦,那就看各家主機板的說明了.
再來就是OS Level的設定了,這有幾個參數設定是支援4G以上記憶體有關的,而這個設定值就是存在boot.ini裡面.
修改前 boot.ini 內容
===============================
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Windows Server 2003, Standard" /noexecute=optout /fastdetect
================================
修改內容 加上 /PAE 如下
================================
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Windows Server 2003, Standard" /noexecute=optout /fastdetect /PAE
=============================
重開機後就可以看到系統抓到4GB了
為了使作業系統能抓到4G以上的記憶體,我們會加一個參數/PAE,這個參數就能使作業系統正確的抓到4G以上的記憶體,所以上述的boot loader最後一行就會長的跟下面這行一樣 :
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprice" /noexecute=optout /fastdetect /PAE
那作業系統已經抓到記憶體了,就可以正常使用了嗎? 答案是還沒,可以發現到,記憶體用量不管怎麼用,總是只會用到4G,並不會超過4G,所以總是會有記憶體"剩"下來,這時就要加上/AWE這個參數,這個參數能使應用程式使用超過2-3G的記憶體使用,所以加上這個參數後,就可以充份使用4G以上的記憶體了.
其它還有一些記憶體的參數可以使用,例如/3GB,在這個參數沒有下之前,系統是預設2G給操作系統,2G給應用程式,如果下了/3GB後,就會是系統 1G,應用程式3G,那如果是4G以上,這個3GB會是怎麼分配記憶體呢?還是一樣,系統只會用到1GB,剩下的給應用程式,所以不是總記憶體除以3或是應用程式只用到3G,而這個參數在使用時,也有一些要注意的地方,當記憶體超過16G時,就不可使用此參數,因為16G以上時,系統需要2G的記憶體空間,如果只給1G,那就會出問題了,所以切記,當記憶體有16G以上時,不要加上/3GB.
另外還有一個參數/USERVA=XXXX與/3GB相似,不過它是使用者可以自行設定,這部份可以參考MSDN的說明 KB316739
作業系統的設完了,基本上,這記憶體已能被應用程式充份使用,除了應用程式本身的設定限制外,例如SQL本身還可以設定記憶體用量及AWE的功能還可以再去設定限制,是都可以充份使用全部的記憶體了.
註 : boot.ini除了用檔案總管的方式找到它,用記事本開啟修改外,也可在[我的電腦]按右鍵內容,於[進階]的Tag內點取[啟動及修復]的[設定],就可以看到預設作業系統,按下編輯就可以直接修改了.
沒有留言:
張貼留言