swap 設很大、沒設定 swap 可以嗎?

#1 SWAP 設很大有關係嗎?
phoenix 2012/5/29 19:55

8G 的 RAM
設一個 64G 的 SWAP
除浪費硬碟空間
有其他不良的影響嗎?

#2 回覆: SWAP 設很大有關係嗎?
poloshiao 2012/5/29 20:42
1. 只有你 同時執行 好幾個 需要 大量 記憶體的程式
才需要 設定 那麼大 的 swap

2. 如果你要設 冬眠 可能需要 8×1.5=12 GB 左右

3. 你的記憶體 8G 執行一般程式是夠 但是你可以借由
設定 swappiness 的比例 來調整 是否強迫 程式來 使用 swap 以免 swap 閒置
Ubuntu swappiness. Improve ubuntu performance. vm.swappiness=10. sysctl.conf

4. 如果你有超大的 swap 一個用途就是 當你 安裝好幾個作業系統時

可以 共享這個 swap 每個 作業系統 分配一塊 來儲存 冬眠數據

#3 回覆: SWAP 設很大有關係嗎?
V字龍 2012/5/29 21:18
浪費硬碟空間就是最大的影響XDDD

#4 回覆: SWAP 設很大有關係嗎?
Lawliet 2012/5/29 22:57

kernel會以為你的ram也有差不多的大小
會一直拼命把程式搬進ram,造成memory swap
反而會拖慢系統速度…

設適當大小就好
先swapoff,看看系統會不會因為沒有swap或ram不夠
有程式不給跑,或crash
如果沒有,就不需要swap進行memory swap
如果有就一點一點加,一般設到swap實際需求的1.5~2x
意思是如果最大用到1g的swap,那就設1.5g~2g的swap空間
不是你實際ram的1.5~2x

#5 回覆: SWAP 設很大有關係嗎?
poloshiao 2012/5/30 6:39

不是你實際ram的1.5~2x

SwapFaq

Why do I need swap?
The hibernation feature (suspend-to-disk) writes out the contents of RAM to the swap partition before turning off the machine. Therefore, your swap partition should be at least as big as your RAM size.

How much swap do I need?
As a base minimum, it’s highly recommended that the swap space should be equal to the amount of physical memory (RAM).
it’s recommended that the swap space is twice the amount of physical memory (RAM)

#6 回覆: SWAP 設很大有關係嗎?
Lawliet 2012/5/30 7:57

我前面說的是memory swap需求
每個人需求的大小根本不一樣
我的linux不管DT還server沒有swap已經超過6年
根本沒有強制規定一定要大於實體記憶體
某些極端環境swap是一點不會提升係統性能
因為程式在跑的時候跟本不會管你ram多少swap多少
試想看看,你只有256mb ram,有個程式啟動就要256mb ram
怎麼辦?靠swap
但是這種情況下系統IO會因為swaping的關係變很慢
很多人都說linux kernel在把ram用完之前是不會去swap的
這點是錯的,我自己以前也這麼以為
實際上linux kernel比我們想的要更智能
kernel會判斷,它覺得系統ram不夠
自己就會開始預先swaping
不會等到真的要用完時才在那邊swaping
如此效率也比較好

ㄒ剩下等我有空捕完
我ㄗ要打卡上班了

#7 回覆: SWAP 設很大有關係嗎?
poloshiao 2012/5/30 8:50

我上面所說的 “swap 需 等於 實體 RAM 的 1.5 倍左右"
都是指 有 冬眠需求 爲前提

#8 回覆: SWAP 設很大有關係嗎?
bruck 2012/5/30 10:26

yanzilme 寫到: kernel會以為你的ram也有差不多的大小
這是什麼邏輯,難道你認為kernel連RAM有多大都搞不清楚。

#9 回覆: SWAP 設很大有關係嗎?
Lawliet 2012/5/30 11:06

bruck 寫到:
這是什麼邏輯,難道你認為kernel連RAM有多大都搞不清楚。

ram大小是固定的,ram需求大小是估計也是用猜的
還有256mb swap跟64gb swap的管理方式是完全不一樣的
256mb的10%使用率跟64gb的1%使用率哪個大?
程式在跑的時候根本不管你ram還有swap大小
它會視為總共有多少ram,你8g ram + 64gb swap
程式會直接視為你的可用ram有72gb
當程式請求載入記憶體的時候,kernel是不會拒絕的
只是會一直swaping,然後你就會發現性能瓶頸卡在IO
為了保持可用ram足夠容納更大的需求
kernel會把它認為可以丟到file system或swap的部份一直丟過去
如果你只有256mb swap,反而還不會這麼的頻繁swaping
重點不在swap大小,而是在比例分配的問題
因為process在跑的時候
它只能儲存在ram,不能在swap
如果你有空閒的空間,也切一個64gb swap
就知道為什麼了

#10 回覆: SWAP 設很大有關係嗎?

UGP 2012/5/30 11:17
個人的理解是如果SWAP越大,東西跑到SWAP裡面的機率就會越高

本站提供 Ubuntu Linux 的正體中文討論區以及文件,對 Ubuntu 有興趣的網友可以多多捧場。

來源: SWAP 設很大有關係嗎? [論壇 – 新手村] | Ubuntu 正體中文站