Ubuntu 新增虛擬記憶體檔案

Undefined443發表於2024-08-16

新增交換檔案

  1. 準備工作

    檢視當前系統中啟用的交換空間(swap space)的詳細資訊:

    sudo swapon --show
    

    檢視系統的記憶體和總交換空間的使用情況:

    free -h
    

    為了有足夠的空間建立交換檔案,可以在建立前先檢視磁碟剩餘空間:

    df -h
    

    其中掛載在 / 下的磁碟是我們將要用來存放交換檔案的磁碟。

  2. 建立一個空檔案:

    sudo fallocate -l 4G /swapfile
    

    檔案的大小根據你的使用情況而定。如果你需要使用休眠功能,則建議總虛擬記憶體大小為實體記憶體大小 2 倍。如果不需要使用休眠功能,則總虛擬記憶體為實體記憶體大小 1 倍即可。

  3. 將空檔案配置為交換空間:

    sudo chmod 600 /swapfile  # 確保檔案訪問許可權正確
    sudo mkswap /swapfile     # 將檔案標記為交換檔案
    
  4. 啟用交換空間:

    sudo swapon /swapfile
    

    驗證交換空間已啟用:

    sudo swapon --show  # 檢視交換空間詳細資訊
    free -h             # 檢視記憶體和總交換空間的使用情況
    

    如果想要在開機時自動啟用交換檔案,編輯檔案系統表 /etc/fstab,在檔案末尾新增一行交換檔案資訊:

    /swapfile none swap sw 0 0
    

刪除交換檔案

  1. 禁用並刪除交換檔案:

    sudo swapoff /swapfile  # 禁用交換檔案
    sudo rm /swapfile       # 刪除交換檔案
    
  2. 如果在 /etc/fstab 中新增了自動掛載設定,則需要移除對應的配置行:

    /swapfile none swap sw 0 0  # 刪除這一行
    
  3. 驗證交換空間是否已刪除

    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

該數值表示系統在多大程度上選擇快取 inodedentry 資訊,而不是其他資料。 inodedentry 是有關檔案系統的訪問資料,一般來說,這些資料的查詢成本很高,而且請求頻率也很高,因此建議儘量不快取這些資料。

調整快取壓力:

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

相關文章