Vultr 中添加 SWAP

如何在 Vultr 中添加 SWAP 交換分區

這是一篇舊文章了,之前發表在 support 論壇裡,這個論壇已經沒有功能了,所以將之關閉,裡面一些文章移轉到這個網誌來。

Vultr 和 DigitalOcean 的 VPS 主機在開新方案後,預設置是不會有 swap 交換分區,不像 Linode 在管理後台 Rebuild 時,就可以設置 swap 分區大小。

swap 要設置多大,可以依以你的 VPS RAM 來判斷。

比如:1GB RAM 那你的 swap 交換分區就可以設置 1024MB,Vultr 768RM 方案,swap 可以設置 512MB,一般最大可以設置到 8GM。

不過我也碰過老外工程師設置過獨服 swap 交換分區 32GB,可能認為我的 HD 不用錢吧 !

如何手動添加 swap 呢? ( CentOS / Ubuntu )

檢查 Swap 空間

在設置 swap 文件之前,有必要先檢查一下系統裡有沒有既存的 swap 文件。

如果返回的信息概要是空的,則表示 swap 文件不存在。

檢查文件系統

在設置 swap 文件之前,同樣有必要檢查一下文件系統,看看是否有足夠的硬碟空間來設置 swap。

檢查返回的信息,還剩餘足夠的硬碟空間即可。

創建 swap

下面使用 dd 命令來創建 swap 文件。

回覆訊息

格式化並啟動 swap

上面已經創建好 swap 文件,還需要格式化後才能使用。

回覆訊息

啟動 swap

回覆訊息

以上步驟做完,再一次運行命令:

回覆訊息

如果要 VPS 主機重啟的時候自動掛載 swap ,那麼還需要修改 fstab 配置。
用 vim 打開 / etc / fstab 文件,在其最後添加如下一行:

最後,賦予 swap 文件適當的權限:

同時,我們還可以修改 Linux swap 空間的 swappiness ,降低對硬碟的緩存。
Linux 會使用硬碟的一部分做為 swap 分區,用來進行進程調度。

進程是正在運行的程序,把當前不用的進程調成「等待 ( standby )」,甚至「睡眠 ( sleep )」。

一旦要用,再調成「活動 ( active )」,睡眠的進程就會在 swap 分區,把內存空出來讓給「活動」的進程。

如果記憶體夠大,應當告訴 Linux 不必太多的使用 swap 分區,可以通過修改 swappiness 的參數來設置。

swappiness = 0 的時候表示最大限度使用物理內存,然後才是 swap 空間。

swappiness = 100 的時候表示積極的使用 swap 分區,並且把內存上的數據及時的搬運到 swap 空間裡面。

在 CentOS 中,swappiness 的默認值是 60。

通過以下命令可以看到:

返回值 60

我們可以調整 swappiness 的值到一個合適的參數,從而達到最優化使用 swap 的目的。

這裡我們將其設為 10。使用 sysctl 命令:

但是這只是臨時性的修改,在你重啟系統後會恢復默認的 60,要永久設置,還需要在 vim 中修改 sysctl.conf:

vi /etc/sysctl.conf

在這個文檔的最後加上這樣一行:

輸入 :qw,保存退出 vim 。

這樣一來,swap 分區重啟後都會生效了。

補充 swap file 計算方法:

建立 512MB 的 swap,一次讀寫 1024bytes

bs=1024 count=524288 # 1024 * 512M = 524288 block size

YUNGKE 沒有厲害的技術,只會小站小弄一番,對大系統架構暫無信仰,咖啡的癮君子,簡約的工作者,將事情變的簡單,將簡單的事情做好。

3 comments On 如何在 Vultr 中添加 SWAP 交換分區

Leave a reply:

Your email address will not be published.

Site Footer