如何幫 Ubuntu 擴充虛擬記憶體

最近發現GCP的虛擬機每隔一段時間就會掛掉,需要重新啟動才能恢復運作。
經過一番排查後發現可能是因為記憶體耗盡,導致系統開始亂刪程序,由於我使用的是GCP的免費方案,記憶體無法隨意增加,因此決定從 swap 下手。

通常在安裝 Linux 時,會幫系統規劃一個 swap 分區。如果當初沒有規劃,或是 swap 分區的空間不夠用時,可以透過動態增加的方式擴充 swap 的容量。

先確認系統是否已經有 swap 空間。可以透過 free -h 或是 swapon --show 查看目前的 swap 空間與使用率。

接著根據你想要增加的容量,使用 fallocate -l 2G /swapfile 在根目錄下建立一個 2GB 的 swapfile,可依照個人需求修改大小。

建立完成後,使用 chmod 600 /swapfile ,修改 swap 檔案的權限,只讓 root 使用者有讀寫權限。

使用 mkswap /swapfile 與 swapon /swapfile ,先將檔案格式化,再掛載 swap。輸入 free -hswapon --show,應該可以看到 swap 空間變多了。

若要復原,則是使用 swapoff /swapfile 先卸載 swap ,再用 rm /swapfile 移除 swap 檔。

以上的設定在重新啟動後就會消失,如果不希望每次開機都要重新擴充 swap ,可以修改 /etc/fstab 檔案,將 swap 設定為開機自動掛載。
使用 nano /etc/fstab 編輯檔案,加上 /swapfile none swap sw 0 0

編輯完成後,要記得使用 findmnt --verify 確認 fstab 設定無誤,避免設定錯誤導致系統無法正常開機。確認沒有錯誤後,未來系統啟動時就會自動掛載該檔案,讓虛擬記憶體保持在可用狀態。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端