Linux设置swap分区为128g,swap分区或文件的数量与大小限制
在Linux系統下,這個虛擬內存就被叫做swap。Linux swap分區是有限制的。在安裝操作系統的時候,安裝向導會提示用戶需要創建多少的SWaP空間。通常情況下,SWaP比較合適的大小為物理內存的1-2倍。
1. 早期的linux對虛擬內存的限制
linux2.2以前的內核,支持最大128M的Linux swap分區或文件。Linux swap的分區或文件總數不超過16個。
所以在linux2.2以前,可用的最大虛擬內存為128M*8=1G.
Swap空間是分頁的,每一頁的大小和內存頁的大小相同,方便Swap空間和內存之間的數據交換。舊版本的Linux實現Swap空間時,用Swap空間的第一頁作為任何Swap空間頁的一個“位映射”(Bit map)。這就是說第一頁的每一位,都對應著一頁Swap空間。假如這一位是1,表示此頁Swap可用;假如是0,表示此頁是壞塊,不能使用。這么說來,第一個Swap映射位應該是0,因為,第一頁Swap是映射頁。另外,最后10個映射位也被占用,用來表示Swap的版本(原來的版本是Swap_space ,現在的版本是swapspace2)。那么,假如說一頁的大小為s,這種Swap的實現方法共能管理“8 * ( s - 10 ) - 1”個Swap頁。對于i386系統來說s=4096,則空間大小共為133890048,假如認為1 MB=2^20 Byte的話,大小正好為128M。
之所以這樣來實現Swap空間的管理,是要防止Swap空間中有壞塊。假如系統檢查到Swap中有壞塊,則在相應的位映射上標記上0,表示此頁不可用。這樣在使用Swap時,不至于用到壞塊,而使系統產生錯誤。
2. Linux2.2.x對虛擬內存的限制
現在的系統設計者認為:.
1.現在硬盤質量很好,壞塊很少。.
2.就算有,也不多,只需要將壞塊羅列出來,而無需為每一頁建立映射。...
3.假如有很多壞塊,就不應該將此硬盤作為Swap空間使用。..
于是,現在的Linux取消了位映射的方法,也就取消了128M的限制。直接用地址訪問,限制為2G。.
Linux2.2.x支持最大2G的Linux swap分區或文件。Linux swap的分區或文件總數不超過8個。
所以在Linux2.2.x,可用的最大虛擬內存為 2G*8=16G
3. Linux2.4.x對虛擬內存的限制
Linux2.4.10之前支持最大2G的Linux swap分區或文件。Linux swap的分區或文件總數不超過8個。
所以在 Linux2.4.10之前,可用的最大虛擬內存為 2G*8=16G
Linux2.4.10(含)之后支持最大2G的Linux swap分區或文件。Linux swap的分區或文件總數不超過32個。
所以在 Linux2.4.10之后,可用的最大虛擬內存為 2G*32=64G
Linux2.4.x在內存管理策略上,就如Windows98向Windows2000轉變一樣,在內存和交換區中保存了更多的臟頁,而不是及時回收內存,以此提高系統的效率。
此外,如果你有超過1塊磁盤,并且分別在不同的磁盤上建立了Linux swap,那么linux會按照raid 0的方式來使用這些交換分區。
總結
以上是生活随笔為你收集整理的Linux设置swap分区为128g,swap分区或文件的数量与大小限制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++获取图像的长宽 opencv_【第
- 下一篇: linux 其他常用命令