# 系統調整，儘量不使用swap

**linux kernel 決定是否要將 ram 裡的資料搬到 swap 的策略**

swappiness 的值介於 0 \~ 100 之間, 值愈高, kernel 愈會將 application 用的記憶體搬到 swap。悲慘的是, 預設值一直都是 60, 但現在的電腦有很大的 ram (早期 512MB vs. 現在最少 4GB), 用 60 的結果是, 明明還有很多記憶體空間可用, 一搬大檔案, file cache 達到記憶體臨界值, kernel 就將 application 用的記憶體搬到 swap, 於是莫明奇妙整個系統進入緩慢的狀態。

如果記憶體使用達到臨界值，就會使用swap，設定的 60 太高，所以要充分使用記憶體，就調低swapnesss 值。

sysctl -a

vi /etc/sysctl.conf

```
vm.swappiness=10
```

sysctl -p 寫入

echo 3 > /proc/sys/vm/drop\_caches

swapoff -a

swapon -a

### 寫入 1 會清除 pagecache：

#### echo 1 > /proc/sys/vm/drop\_caches

### 寫入 2 會清除 dentries 與 inodes：

#### echo 2 > /proc/sys/vm/drop\_caches

### 寫入 3 則有等同於 1+2 的效果，會清除 pagecache、dentries 及 inodes：

#### echo 3 > /proc/sys/vm/drop\_caches
