在只有1GB記憶體的伺服器上使用Swap來運行npm install


在只有1GB記憶體的伺服器上運行npm install可能會因為RAM有限而面臨挑戰。但是,通過啟用swap空間,您可以擴展虛擬記憶體並確保操作順暢。這篇文章將引導您如何在伺服器上創建和啟用swap分區。

Swap是什麼?

Swap空間是硬盤上指定的區域,用於暫時保存不活躍的記憶體頁面。它作為物理記憶體(RAM)的虛擬擴展,使系統能更有效地管理記憶體。當系統用盡物理記憶體時,它會將不活躍的頁面移動到Swap空間,為活躍進程釋放RAM。雖然Swap比物理記憶體慢,但可以防止記憶體不足的錯誤並提高系統穩定性。

啟用Swap空間的步驟指南

  1. 查看現有Swap資訊

    在創建Swap空間之前,先檢查是否已有配置Swap:

    sudo swapon --show
    
  2. 檢查磁盤分區可用性

    確保您有足夠的磁盤空間來放置Swap檔案。使用df指令:

    df -h
    
  3. 創建Swap檔案

    使用fallocate程式在根目錄中配置1GB的Swap檔案:

    sudo fallocate -l 1G /swapfile
    
  4. 啟用Swap檔案

    透過設置適當的權限來確保Swap檔案的安全性:

    sudo chmod 600 /swapfile
    

    將檔案格式化為Swap空間:

    sudo mkswap /swapfile
    

    啟用Swap檔案:

    sudo swapon /swapfile
    
  5. 將Swap檔案設置為永久

    為了確保伺服器重啟後繼續使用Swap檔案,請將其添加到 /etc/fstab 檔案中:

    sudo cp /etc/fstab /etc/fstab.bak
    

    編輯 /etc/fstab 以包含 Swap檔案:

    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
    
  6. 優化Swap設定

    調整 swappiness 值以控制系統使用Swap空間的頻率。較低的值可減少Swap的使用,提高性能。查看當前的值:

    cat /proc/sys/vm/swappiness
    

    swappiness 設為 15:

    sudo sysctl vm.swappiness=15
    

    透過將其添加到 /etc/sysctl.conf 中,使此變更永久:

    echo 'vm.swappiness=15' | sudo tee -a /etc/sysctl.conf
    

    調整 vfs_cache_pressure 值以平衡快取保留與使用Swap的平衡。查看當前的值:

    cat /proc/sys/vm/vfs_cache_pressure
    

    將其設定為60:

    sudo sysctl vm.vfs_cache_pressure=60
    

    使此變更永久:

    echo 'vm.vfs_cache_pressure=60' | sudo tee -a /etc/sysctl.conf
    

總結

創建和啟用Swap空間可以讓您的伺服器更有效地處理記憶體密集型操作,比如說 npm install。雖然Swap不能替代物理RAM,但它可以為記憶體限制提供臨時解決方案,確保更順暢的性能並防止記憶體不足的錯誤。通過跟隨上述重述的步驟,您可以優化伺服器的記憶體管理並提高其整體穩定性。