前言
由於偏重隨機讀寫的特性,
把 swap 分割區安排在 SSD 上是很適合的應用;
但要完整享受到新一代產品的種種優點,
還需有作業系統配合實作 TRIM 指令才能達成。
FreeBSD 從善如流,於 9.0-RELEASE 開始支援 TRIM,
大幅提高了使用者以 SSD 作為系統碟的意願,
只可惜目前 FreeBSD 對 swap 分割區不提供支援 TRIM…
所幸 FreeBSD 對於 swap 的配置提供分割區之外多樣化的選擇,
包含 NFS 與 swap file;
若要充分利用 SSD 的特性並同時支援 TRIM,
則需使用 md(4) 製作並掛載 swap file。
實作
詳細做法在官方的說明文件已經有範例,
但有些描述已經過時,相關討論可以參考 maillist 的記錄。
在此歸納比較適當的做法:
- 首先確認核心組態包含
device md
- 建立 swap file,並適當設定權限
dd if=/dev/zero of=/swap0 bs=1024k count=64 chmod 0600 /swap0
- 到此已建立好 swap file,手動使其生效
mdconfig -a -t vnode -f /swap0 -u 0 swapon /dev/md0
但若要在開機時自動載入,
官方文件提及於 /etc/rc.conf
設定 swap file 已是過時的做法,
新的做法應為:
- 修改
/etc/fstab
,加上md none swap sw,file=/swap0 0 0
- 重新開機後以
swapctl -l
指令驗證,
輸出應包含先前設定的/dev/md*
裝置,即告成功。
參考資料