其實虛擬內存並非等到物理內存用盡了才使用的,是否儘可能的使用或不使用swap,在內核空間有一個參數控制。 java
[root@server ~]# cat /proc/sys/vm/swappiness 60swappiness=0 的時候表示最大限度使用物理內存,而後纔是swap空間;swappiness=100 的時候表示積極的使用swap分區,而且把內存上的數據及時的搬運到swap空間裏面。
目前Red Hat(紅帽官方)推薦交換分區的大小應當與系統物理內存的大小保持線性比例關係。 不過在小於2GB物理內存的系統中,交換分區大小應該設置爲內存大小的 兩倍,若是內存大小多於2GB, 交換分區大小應該是物理內存大小加上2GB。其緣由在於,系統中的物理內存越大, 對於內存的負荷可能也越大。
可是,若是物理內存大小擴展到數百GB,這樣作就沒什麼意義了。 實際上,系統中交換分區的大小並不取決於物理內存的量,而是取決於系統中內存的負荷。 Red Hat Enterprise Linux 5能夠在這樣的狀況下工做:徹底沒有交換分區, 並且系統中匿名內存頁和共享內存頁小於3/4的物理內存量。在這種狀況下, 系統會將匿名內存頁和共享內存頁鎖定在物理內存中,而使用剩餘的物理內存來緩衝文件系統數據(pagecache), 當內存耗盡時,系統內核只會回收利用這些pagecache內存。 考慮到如下狀況: 1)安裝系統時難以肯定內存的負荷,如何設置交換分區大小 2)系統中物理內存越大,所需交換分區就會越少 所以,在Red Hat Enterprise Linux 5中,如下是設置合適的交換分區大小的規則: 注:適用於RHEL 5.x(CentOS 5.x)「5的版本