2008-10-14 30 views
2

在Windows Server 2003企業版,SP2(/ 3GB開關未啓用)Windows進程何時內存不足?

據我瞭解,我可能是錯的,對於過程中的最大可尋址內存爲4GB。

是2GB的專用字節和2GB的虛擬字節?

當達到專用字節限制或虛擬字節限制時是否出現「內存不足」錯誤?

回答

4

從某種意義上說,進程的最大地址空間是4GB是正確的。對於每個進程,地址空間的一半由操作系統佔用。這可以通過3GB開關進行更改,但可能會導致系統不穩定。因此,我們剩下2GB的可尋址內存供過程自行使用。那麼,不完全。事實證明,這個空間的一部分被其他東西佔用,如DLL和其他通用代碼。作爲編程人員可用的實際內存大約爲1.5GB - 1.7GB。

我不知道你如何處理不慎會高於這一極限,但我知道的遊戲,其墜毀在大型多人地圖這個原因。另外要注意的是,除非它們能使/ LARGEADDRESSAWARE 32位程序不能使用超過2GB的地址空間,更多的是64位系統上:YES鏈接標誌。

0

標記Russinovich開始在這一系列的職位.. Pushing the Limits of Windows: Physical Memory

雖然4GB是32的許可限制位客戶端SKU,有效限制實際上較低,並取決於系統的芯片組和連接設備。原因是物理地址映射不僅包含RAM,還包含設備內存,x86和x64系統將所有設備內存映射到4GB地址邊界以下,以便與不知道如何處理的32位操作系統兼容地址大於4GB。如果一個系統有4GB內存和設備,比如視頻,音頻和網絡適配器,這些設備的內存總和爲500MB,那麼500MB的4GB內存將位於4GB的地址邊界之上。

0

在32位Windows平臺上,您只能訪問總共2Gb的內存(沒有3Gb交換機)。

你可以在64位操作系統上運行32位的多個虛擬機,以便每個應用程序可以訪問儘可能多的內存可能的,如果你的機器有超過4GB。

很多人剛剛開始遇到這些障礙,如果您的應用程序使用.net或Java,因爲VM在64位操作系統上高興地達到32Gb內存,我想這會更容易。

0

在32位,如果有足夠的物理存儲器和用於虛擬內存的磁盤空間,存儲器耗盡周圍3GB因爲內核保留上述0xC0000000的地址空間爲本身。在運行64位應用程序的64位內核上,限制爲8TB。

有關詳細信息,請MSDN - Memory Limits for Windows Releases

0

最大的可尋址內存的32位機爲4GB,對於64位計算機可以處理更多的負載。 (雖然一些32位機器有擴展系統可以訪問更多,但我認爲這不值得打擾或考慮使用)。

達到虛擬限制時出現內存不足錯誤。在Windows Server 2003上,任務管理器會告訴您標籤爲「提交費用限額」的性能選項卡上的限制。