2008年1月6日 星期日

Linux Swap Memory分配小技巧

Linux的一個Swap上限爲128MB,可以有16個Swap, 也就是最大上限爲2GB.
Swap可以是2的等比級數2MB,4MB,8MB,16MB,32MB,...,128MB.切成200MB的話, 只能用到128MB, 切成48MB只能用到32MB.所以切割成大於128MB的Swap是沒有用的.
對於Swap的大小問題, 要考慮的使用狀況,如果有搞電腦繪圖時,有大矩陣的運算, 那麽Swap當然要大一點.否則一般的狀況是記憶體的兩倍到四倍.記憶體越小, 這個比例要相對的增大.如果是64MB, 那麽大約128MB-256MB就很夠.
例如一台機器作為HTTP Server原本給了64MB,Swap給了512MB, 但後來發現給得太多了,就改回32MB, Swap 128MB, 奇怪的是,效能不降反升, 可能是需要處理的量降低所造成的.
Desktop用的電腦, 因爲有電腦繪圖的應用,因此有192MB RAM, 給了1GB Swap,最壞的狀況是Swap到達400MB.在64MB的狀況, 大部份時候比較常見到Swap到達150MB(X window+GIMP+Blender+Netscape+...servers)
如果只是File Server, 那麽16MB RAM+64MB Swap可能就夠了.如果還有Printer Server, 那麽要看使用的量來決定了,如果是一堆圖檔, 或者列印量很大, 那麽RAM/SWAP比率要加大很多.64MB+512MB Swap並不會太誇張.
要決定swap memory的使用狀況, 可以經常去看/proc/meminfo這個檔案. 看過這個檔案可驗證swap是否有效,如果您了一塊不是2的倍數的swap, 會發現浪費了一大塊硬碟空間.剩餘記憶體應當通常都不多(因爲Linux重重地快取所有檔案系統,這是Linux之所以快速的原因之一), 但這不重要, Linux有一些機制, 在需要記憶體的時候, 會釋放記憶體出來. 您只需要看swap的部份,就可以決定swap memory大約需要多少.例如如果您的swap經常在100MB左右, 那麽給200MB大致是夠的.另外, 發現許多人把swap切在primary上面,這本身倒沒什麽錯誤. 不過切在extended上面可以多切幾個小塊出來,效能會比較好一點. Swap小一點會有比較好的效能, 也比較安全一點,畢竟memory block少有超過32MB的. 不過, 別太小就是了

沒有留言: