設定 Swap (Optional)

基本上華碩 router 都會有 256MB ram,即使較舊的 AC-66U 都不例外。
而 V2Ray 使用的記憶體多寡依連線數量決定,每個連線最多可佔 10MB buffer,alterId = 64 即是最多有 64 個連線,所以最盡可佔 640MB ram, 雖然出現這樣的機會不太大,但如能未雨綢繆始終較好,增加 swap file 能減少 V2Ray 因記憶體不足而停止運作的機會。

要增加 Swap,首先需要買一隻 USB 手指,容量不需要大,4GB 亦夠使用。(但建議買一支新的手指,如 16GB 那些。不建議使用贈送的 USB 手指,那些手指速度很慢而且穩定性差,很易死。)
如果 router 同時有 USB 3.0 和 USB 2.0 的話,建議使用 USB 2.0,因為華碩的 USB 3.0 和 WiFi 2.4G 會互相干擾,而開啓「防干擾」功能則令速度降低,所以直接用 USB 2.0 就好了。

可能有人會覺得,如果只增加 64MB – 128MB swap,放在 JFFS 不就可行嗎?
但現實是這類 rom 有寫入次數限制,正常使用的話沒有問題,因為壽命遠高於其他硬件;但如果當成 swap 使用的話,就會很快玩完,需要再買新 router 了,所以絕不建議在 JFFS 建立 swap.

插上手指在 USB 2.0 後,一般來說會是 sda1,可以輸入以下指令檢查

ls -l /tmp/mnt

如無意外就會見到 sda1,如果是其他代號也沒有問題,將下面的指令替換成你的代號就可以了。

建立一個 512MB 的檔案

dd if=/dev/zero of=/tmp/mnt/sda1/swap.swp bs=1k count=524288

將這個檔案設定成為 swap file

mkswap /tmp/mnt/sda1/swap.swp

啓用這個 swap file

swapon /tmp/mnt/sda1/swap.swp

查看成功設定與否

free
asuswrt merlin created swap
多了 512MB swap file

現在,要令到每次 router 開機時都會自動使用 swap file

nano /jffs/scripts/post-mount

將以下內容貼上(如果已經有其他內容的話,只需將 swapon 那一行貼在最底就可以了)

#!/bin/sh

#enable swap
swapon /tmp/mnt/sda1/swap.swp

按 Ctrl + X 退出,之後按 Y 確定儲存,再按一下 Enter 確定檔案名。

最後,需要令到 post-mount 變成可執行狀態。

chmod a+rx /jffs/scripts/*

完成,這樣的話每次開機會會有 512MB swap file,連原本的 256MB ram 足夠 v2ray 使用了。