新增交換檔案
-
準備工作
檢視當前系統中啟用的交換空間(swap space)的詳細資訊:
sudo swapon --show
檢視系統的記憶體和總交換空間的使用情況:
free -h
為了有足夠的空間建立交換檔案,可以在建立前先檢視磁碟剩餘空間:
df -h
其中掛載在
/
下的磁碟是我們將要用來存放交換檔案的磁碟。 -
建立一個空檔案:
sudo fallocate -l 4G /swapfile
檔案的大小根據你的使用情況而定。如果你需要使用休眠功能,則建議總虛擬記憶體大小為實體記憶體大小 2 倍。如果不需要使用休眠功能,則總虛擬記憶體為實體記憶體大小 1 倍即可。
-
將空檔案配置為交換空間:
sudo chmod 600 /swapfile # 確保檔案訪問許可權正確 sudo mkswap /swapfile # 將檔案標記為交換檔案
-
啟用交換空間:
sudo swapon /swapfile
驗證交換空間已啟用:
sudo swapon --show # 檢視交換空間詳細資訊 free -h # 檢視記憶體和總交換空間的使用情況
如果想要在開機時自動啟用交換檔案,編輯檔案系統表
/etc/fstab
,在檔案末尾新增一行交換檔案資訊:/swapfile none swap sw 0 0
刪除交換檔案
-
禁用並刪除交換檔案:
sudo swapoff /swapfile # 禁用交換檔案 sudo rm /swapfile # 刪除交換檔案
-
如果在
/etc/fstab
中新增了自動掛載設定,則需要移除對應的配置行:/swapfile none swap sw 0 0 # 刪除這一行
-
驗證交換空間是否已刪除
sudo swapoff --show
高階設定
高階設定一般不用管
調整交換頻率
檢視當前交換頻率:
cat /proc/sys/vm/swappiness
0
:儘量不使用交換空間,記憶體壓力大。1
:儘量使用交換空間,記憶體壓力小。
調整交換頻率:
sudo sysctl vm.swappiness=10
為了永久修改交換頻率,我們需要編輯系統核心引數配置檔案 /etc/sysctl.conf
,在檔案末尾加入一行:
vm.swappiness=10
調整快取壓力設定
檢視快取壓力:
cat /proc/sys/vm/vfs_cache_pressure
該數值表示系統在多大程度上選擇快取 inode
和 dentry
資訊,而不是其他資料。 inode
和 dentry
是有關檔案系統的訪問資料,一般來說,這些資料的查詢成本很高,而且請求頻率也很高,因此建議儘量不快取這些資料。
調整快取壓力:
sudo sysctl vm.vfs_cache_pressure=50
同樣,為了永久修改快取壓力設定,需要編輯系統核心引數配置檔案 /etc/sysctl.conf
,在檔案末尾加入一行:
vm.vfs_cache_pressure=50
參考:How To Add Swap Space on Ubuntu 22.04 | Digital Ocean Tutorials