建議 Swap 使用單獨的分割槽:
- a swap file
- a combination of swap partitions and swap files.
Swap 大小的計算公式:
M 等於實體記憶體大小(GB),S 等於 Swap 大小(GB)
當實體記憶體小於 2 GB 的時候,Swap 等於實體記憶體的 2 倍。當實體記憶體大於 2 GB 的時候,Swap 等於實體記憶體 + 2 GB
If M < 2
S = M *2
Else
S = M + 2
檢視總體的使用 Swap 的情況:
[root@localhost ~]# free m
total used free shared buffers cached
Mem: 1412236 603288 808948 0 37628 412636
-/+ buffers/cache: 153024 1259212
Swap: 2588624 0 2588624
free -m :檢視記憶體情況,單位為MB。
total 記憶體總數
used 已經使用的記憶體數(我的程式使用記憶體數量+系統快取使用的內數量)
free 空閒的實體記憶體數(是真正的空閒,未被任何程式佔用)
shared 多個程式共享的記憶體總額
buffers 磁碟快取(Buffer Cache)的大小(可提高系統I/O呼叫的效能)
cached 磁碟快取(Page Cache)的大小(可提高系統I/O呼叫的效能)
-buffers/cache 表示已被我們的程式使用的記憶體數,計算方法:used - buffers - cached
+buffers/cache 表示還可已被我使用的記憶體數,計算方法:free + buffers + cached
作業系統目前可用記憶體總量=free + buffers + cached=808948+ 37628+ 412636=1259212(即buffer與Cache 可以無限接近0,全部被程式使用)
程式使用的總記憶體=153024= 603288 - 37628 -412636 (used=程式記憶體+buffer+cache)
buffers是用來給塊裝置做的緩衝大小、buffers是用來儲存目錄裡面有什麼內容,許可權等等
cached用來給檔案做緩衝,用來記憶我們開啟的檔案.
檢視是哪個程式使用了 Swap:
使用 top
命令,然後再按 f
,再按 p
,(顯示swap列)
即可顯示哪個程式使用了多少 Swap 空間。然後要釋放的話,把那個程式重起下即可。
檢視 Swap 使用的哪個分割槽使用 /sbin/swapon -s
命令。
[root@localhost ~]# /sbin/swapon -s
Filename Type Size Used Priority
/dev/sda3 partition 2064344 0 -1
/swapfile1 file 524280 0 -2
部分轉載於 http://elf8848.iteye.com/blog/1995638