前陣子有說到我這台 Linux 的機器太閒沒事做,所以除了架設起 samba ,proxy,這個網頁外,另外也把 MLdonkey 也弄上去。
在好友Jack的幫助下我們把 MLDonkey 發揮到了極致,下載了上百GB的影片且不斷增加中,除此之外它同時下載的項目也是上千項。
很快的我可以感覺到整台Linux開始變的很頓很頓,且硬碟不斷的在讀寫;我發現1GB的RAM還不夠它用,他還另外又吃了1GB的 SWAP。很多資料交換量不是很大的機器應該放個好幾天都不見的會吃的到 SWAP。
也許您正是因為自己分配了 SWAP 卻都沒利用到而苦腦,我的情況剛好是相反,但是不管怎麼樣,相信這篇小文章對您多少是會有一點幫助的吧?
其實 SWAP 能不去吃到是很好的事,不要因為分了一些空間給 SWAP 就覺得沒用到很可惜。我很建議玩家們可以在分割硬碟時不要特别劃出 SWAP 分割區,因為這樣子可以比較容易管理您的硬碟空間;SWAP其實也可以 以檔案的形式存在的,但是 Linux 的動態 pagefile 比 windows 下的更聰明更好管理,在 Linux 下是可以動態改變 SWAP 大小的,且不像 Windows 那樣一改了就要重開機才能生效。
您還可以將您的 swap 建立在你想要放置的地方,直接放在 / 或是放在 folder 裡都沒有問題。 以下是一個建立 swap 的示範
root@cyberlar:/# dd if=/dev/zero of=/SWAP/pagefile.sys bs=1M count=512 #建一個512MB的空白檔
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 12.886 s, 41.7 MB/s
root@cyberlar:/# mkswap /SWAP/pagefile.sys #格式化剛才建立的那個空白檔
Setting up swapspace version 1, size = 524284 KiB
no label, UUID=5eee5b3f-5a23-4cb1-a64f-6d08c873e66b
root@cyberlar:/# swapon /SWAP/pagefile.sys # 這樣子就掛上去了!
當然您也可以把這個檔案寫到 /etc/fstab 裡讓電腦在開機後也會自動卦上 SWAP,如以下格式
/SWAP/pagefile.sys swap swap defaults 0 0
在我的機器開始有工作比較忙的時候,因為大量的資料都寫到比較慢的 SWAP 去,變的我整台機器的反映變的好慢好慢。經過我 swapoff -a 把 swap 卸下後,整個就變快了起來,但是 top 出來不斷的看到 free memory 在10MB 以內上下跳動,越看越可怕,沒一下子我趕快的又把 SWAP 給掛回去,必免記憶體會因為用光而當機。
但是同時又不希望因為 Linux 把太多的交換資料都存到 SWAP 去, 所以我必須告訴 Linux 我希望它在用不到 SWAP 的時候就不要用。
echo 0 > /proc/sys/vm/swappiness
這個 swappiness 的數值可以是 0 到 100,數字越大代表 Linux 會越用力的把資料都丟到 SWAP 去,數字越小就代表 Linux 在可以的情況下就越不使用交換區。 預設是 60。
我的情況是希望減少一些不必要的硬碟讀取,所以數字設的比較低一些。
寫到了這裡,馬上就想到了 Windows Vista 前陣子很臭屁的 ReadyBoost 的功能,其實在 Linux 也是早就有類似的技術了呦。
把您有 ReadyBoost 效能的 USB 插上 Linux, 再把 SWAP 檔案存在那個 USB 碟上,最後再給與 swappiness = 100 的值;這不是現成的 ReadyBoost 功能嗎?
希望這一小篇手記可以對您有幫助!