在只有1GB記憶體的伺服器上使用Swap來運行npm install
在只有1GB記憶體的伺服器上運行npm install可能會因為RAM有限而面臨挑戰。但是,通過啟用swap空間,您可以擴展虛擬記憶體並確保操作順暢。這篇文章將引導您如何在伺服器上創建和啟用swap分區。
Swap是什麼?
Swap空間是硬盤上指定的區域,用於暫時保存不活躍的記憶體頁面。它作為物理記憶體(RAM)的虛擬擴展,使系統能更有效地管理記憶體。當系統用盡物理記憶體時,它會將不活躍的頁面移動到Swap空間,為活躍進程釋放RAM。雖然Swap比物理記憶體慢,但可以防止記憶體不足的錯誤並提高系統穩定性。
啟用Swap空間的步驟指南
- 查看現有Swap資訊
在創建Swap空間之前,先檢查是否已有配置Swap:
bash
sudo swapon --show
- 檢查磁盤分區可用性
確保您有足夠的磁盤空間來放置Swap檔案。使用df
指令:
bash
df -h
- 創建Swap檔案
使用fallocate
程式在根目錄中配置1GB的Swap檔案:
bash
sudo fallocate -l 1G /swapfile
- 啟用Swap檔案
透過設置適當的權限來確保Swap檔案的安全性:
bash
sudo chmod 600 /swapfile
將檔案格式化為Swap空間:
bash
sudo mkswap /swapfile
啟用Swap檔案:
bash
sudo swapon /swapfile
- 將Swap檔案設置為永久
為了確保伺服器重啟後繼續使用Swap檔案,請將其添加到 /etc/fstab
檔案中:
bash
sudo cp /etc/fstab /etc/fstab.bak
編輯 /etc/fstab
以包含 Swap檔案:
bash
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
- 優化Swap設定
調整 swappiness
值以控制系統使用Swap空間的頻率。較低的值可減少Swap的使用,提高性能。查看當前的值:
bash
cat /proc/sys/vm/swappiness
將 swappiness
設為 15:
bash
sudo sysctl vm.swappiness=15
透過將其添加到 /etc/sysctl.conf
中,使此變更永久:
bash
echo 'vm.swappiness=15' | sudo tee -a /etc/sysctl.conf
調整 vfs_cache_pressure
值以平衡快取保留與使用Swap的平衡。查看當前的值:
bash
cat /proc/sys/vm/vfs_cache_pressure
將其設定為60:
bash
sudo sysctl vm.vfs_cache_pressure=60
使此變更永久:
bash
echo 'vm.vfs_cache_pressure=60' | sudo tee -a /etc/sysctl.conf
總結
創建和啟用Swap空間可以讓您的伺服器更有效地處理記憶體密集型操作,比如說 npm install
。雖然Swap不能替代物理RAM,但它可以為記憶體限制提供臨時解決方案,確保更順暢的性能並防止記憶體不足的錯誤。通過跟隨上述重述的步驟,您可以優化伺服器的記憶體管理並提高其整體穩定性。