32 位 RHEL 6 系統可用的最大記憶體
我在64 位系統上安裝了**32 位 RHEL 作業系統。
從PAE的 wiki 頁面:
Linux 核心從 2.3.23 版本開始包含完整的 PAE 模式支持,Linus Torvalds 在 1.3.15 中提到了 PAE 的 4 MB 頁面支持,
$$ 18 $$在 32 位機器上支持訪問高達 64 GB 的記憶體。
其中一台伺服器中的目前核心版本是:
2.6.32-431.17.1.el6.i686
問題 1
核心版本是否意味著如果我在現有的8 GB RAM 上再添加**24 GB RAM,整個32 GB 物理記憶體將變得可用?
目前系統顯示有8 GB RAM 可用(我使用
free
命令檢查它)。問題2
我仍然對虛擬記憶體概念感到困惑。
32位系統將如何使用虛擬記憶體?
我讀到32 位RHEL 將使用3 GB 的記憶體塊。
這是否意味著,在任何時候,主記憶體中最多只能有3 GB?
我想,因為我隨時都有32 GB 記憶體,所以**32 GB 數據可以駐留在主記憶體中。特別是,我試圖從這裡理解答案:
每個程序都在自己的地址空間中執行,並且 32 位將每個程序的地址空間限制為大約 3GB。32 位應用程序使用的記憶體總和是完全無關的。沒有什麼可以解決的。
好吧,我不希望得到比這裡提供的更簡潔的答案。
我對 32 位作業系統的理解是,地址以 32 位表示,因此作業系統最多可以使用 2^32 = 4GB 記憶體空間
該程序最多可以處理4GB。您可能會將記憶體與地址空間混淆。 **一個程序可以擁有比地址空間更多的記憶體。**這是完全合法的,並且在影片處理和其他記憶體密集型應用程序中很常見。 一個程序可以分配幾十 GB 的記憶體,並隨意將其換入和換出地址空間。一次只能有 2 GB 進入使用者地址空間。
如果你家有一個四車位車庫,你仍然可以擁有五十輛車。**你不能把它們都放在你的車庫裡。**您必須在其他地方有輔助儲存來儲存至少 46 個;你把哪些車放在車庫裡,哪些車放在街對面的停車場,這取決於你。
這是否意味著任何 32 位作業系統,無論是 Windows 還是 unix,如果機器在硬碟上的 RAM + 頁面文件超過 4GB,例如 8GB RAM 和 20GB 頁面文件,就永遠不會“記憶體用完”?
絕對不是那個意思。單個程序可以使用比這更多的記憶體!同樣**,程序使用的記憶體量幾乎與程序使用的虛擬地址空間量完全無關。**就像您在車庫中保留的汽車數量與您擁有的汽車數量完全無關一樣。
此外,兩個程序可以共享非私有記憶體頁。如果 20 個程序都載入相同的 DLL,則這些程序都共享該程式碼的記憶體頁面。它們不共享虛擬記憶體地址空間,它們共享記憶體。
如果不清楚,我的觀點是,您應該停止將記憶體和地址空間視為同一事物,因為它們根本不是同一事物。
如果這台 32 位作業系統機器有 2GB 的 RAM 和 2GB 的頁面文件,增加頁面文件的大小對性能沒有幫助。這是真的?
你有五十輛車和一個四車位車庫,街對面有一個 100 輛車的停車場。您將停車場的大小增加到 200 個停車位。由於您現在擁有 150 個額外的停車位而不是 50 個額外的停車位,您的汽車是否會變得更快?