(Linux)- SWAP 常用命令整理
(Linux)- SWAP 常用命令整理
![(Linux)- SWAP 常用命令整理](https://spimet.com/wp-content/uploads/2021/03/Ubuntu-header-003-Lossy.png)
一 虛擬記憶體(SWAP)
1.1 確認記憶體使用狀況
free -m
$ free -m
total used free shared buff/cache available
Mem: 990 164 197 38 628 584
Swap: 0 0 0
$ free -m
total used free shared buffers cached
Mem: 992 867 125 20 63 516
-/+ buffers/cache: 287 704
Swap: 1023 0 1023
1.2 設定 Swap File
設定 4G 的 SWAP 檔案sudo -s
cd /var
fallocate -l 4G swapfile.1
chmod 600 swapfile.1
設定此檔案只能被 root 讀寫,以防安全性問題
1.3 啟用 SWAP
mkswap /var/swapfile.1
swapon /var/swapfile.1
1.4 查詢目前 SWAP 路徑
$ swapon -s
$ swapon -s
Filename Type Size Used Priority
/var/swapfile.1 file 4194300 0 -1
1.5 讓 Swap file 重開機後也能自動啟動
請確認您的 swap 檔案路徑為/var/swapfile.1
,如果有自定義其他 swap 檔案名稱,請將 swap 檔案路徑改為您的路徑,否則會導致無法開機
echo "/var/swapfile.1 none swap sw 0 0" >> /etc/fstab
1.6 使用 htop 監控記憶體使用狀況
sudo apt-get install htop
1.7 設定 swappiness 調整 swap 使用優先權
swappiness
數值介於 0~100,越接近 100 則系統越常使用 swap,越接近 0 則系統會越常使用 RAM,預設為 60,為了系統效能,可以盡量將此設定值調低 查詢 swappiness
cat /proc/sys/vm/swappiness
1.8 設定 swappiness
sysctl vm.swappiness=10
1.9 設定重新開機時 swappiness 數值
echo "vm.swappiness = 10" >> /etc/sysctl.conf
二 調整 swap 參數
如果常發生記憶體吃滿的情況,可以調整 kernel 內建的參數 swappiness 和 vfs_cache_pressure 試試看。
2.1 swappiness
swappiness 是調整系統進行 Swap 的頻率
建議值是 0 ~ 100 ( 0 是低, 100 是調高頻率 )
我的 ubuntu 系統預設值為 60
$cat /proc/sys/vm/swappiness
可以這樣調整他. (重開就清掉了)
$sudo sysctl vm.swappiness=10
或者
$sudo vim /etc/sysctl.conf
# 加入參數
...
vm.swappiness=10
...
2.2 vfs_cache_pressure
vfs_cache_pressure 可以控制系統清除 cache 的頻率
數值設定低會導致內核傾向於保留 dentry 和 inode 於記憶體中
高就會提高清除重建的頻率
而預設值為 100
一般建議是不要太高
$cat /proc/sys/vm/vfs_cache_pressure
一樣可以這樣設定。( 但重開機後會被還原 )
$sudo sysctl vm.vfs_cache_pressure=50
或者
$vim /etc/sysctl.conf
vm.vfs_cache_pressure = 500
也有人建議可以設定到 10000
至於效果好不好,可能根據每個環境要進行監控一下
免責聲明:
1.本影像檔案皆從網上搜集轉載,不承擔任何技術及版權問題。
2.如有下載連結僅供寬頻測試研究用途,請下載後在24小時內刪除,請勿用於商業。
3.若侵犯了您的合法權益,請來信通知我們,我們會及時刪除,給您帶來的不便,深表歉意。
Great blog you have got here.. It’s hard to find quality writing like yours these days.
I truly appreciate individuals like you! Take care!!
Thanks for sharing your thoughts on website.
Regards