在Windows Server 2003企業版,SP2(/ 3GB開關未啓用)Windows進程何時內存不足?
據我瞭解,我可能是錯的,對於過程中的最大可尋址內存爲4GB。
是2GB的專用字節和2GB的虛擬字節?
當達到專用字節限制或虛擬字節限制時是否出現「內存不足」錯誤?
在Windows Server 2003企業版,SP2(/ 3GB開關未啓用)Windows進程何時內存不足?
據我瞭解,我可能是錯的,對於過程中的最大可尋址內存爲4GB。
是2GB的專用字節和2GB的虛擬字節?
當達到專用字節限制或虛擬字節限制時是否出現「內存不足」錯誤?
從某種意義上說,進程的最大地址空間是4GB是正確的。對於每個進程,地址空間的一半由操作系統佔用。這可以通過3GB開關進行更改,但可能會導致系統不穩定。因此,我們剩下2GB的可尋址內存供過程自行使用。那麼,不完全。事實證明,這個空間的一部分被其他東西佔用,如DLL和其他通用代碼。作爲編程人員可用的實際內存大約爲1.5GB - 1.7GB。
我不知道你如何處理不慎會高於這一極限,但我知道的遊戲,其墜毀在大型多人地圖這個原因。另外要注意的是,除非它們能使/ LARGEADDRESSAWARE 32位程序不能使用超過2GB的地址空間,更多的是64位系統上:YES鏈接標誌。
下面的鏈接解釋比我以往任何時候都可能呢好得多:
標記Russinovich開始在這一系列的職位.. Pushing the Limits of Windows: Physical Memory
雖然4GB是32的許可限制位客戶端SKU,有效限制實際上較低,並取決於系統的芯片組和連接設備。原因是物理地址映射不僅包含RAM,還包含設備內存,x86和x64系統將所有設備內存映射到4GB地址邊界以下,以便與不知道如何處理的32位操作系統兼容地址大於4GB。如果一個系統有4GB內存和設備,比如視頻,音頻和網絡適配器,這些設備的內存總和爲500MB,那麼500MB的4GB內存將位於4GB的地址邊界之上。
在32位Windows平臺上,您只能訪問總共2Gb的內存(沒有3Gb交換機)。
你可以在64位操作系統上運行32位的多個虛擬機,以便每個應用程序可以訪問儘可能多的內存可能的,如果你的機器有超過4GB。
很多人剛剛開始遇到這些障礙,如果您的應用程序使用.net或Java,因爲VM在64位操作系統上高興地達到32Gb內存,我想這會更容易。
在32位,如果有足夠的物理存儲器和用於虛擬內存的磁盤空間,存儲器耗盡周圍3GB因爲內核保留上述0xC0000000的地址空間爲本身。在運行64位應用程序的64位內核上,限制爲8TB。
最大的可尋址內存的32位機爲4GB,對於64位計算機可以處理更多的負載。 (雖然一些32位機器有擴展系統可以訪問更多,但我認爲這不值得打擾或考慮使用)。
達到虛擬限制時出現內存不足錯誤。在Windows Server 2003上,任務管理器會告訴您標籤爲「提交費用限額」的性能選項卡上的限制。