1. 調整swappiness
參數,降低交換傾向
swappiness
參數(范圍0-100)控制內核使用交換空間的傾向,默認值通常為60。較低的數值(如10-20)會讓系統更傾向于保留數據在物理內存中,僅在內存嚴重不足時才使用交換空間,從而減少交換帶來的性能損耗。
sudo sysctl vm.swappiness=10
立即生效;/etc/sysctl.conf
文件,添加或修改vm.swappiness=10
,然后運行sudo sysctl -p
使配置生效。2. 使用SSD作為交換設備,提升IO速度
SSD的隨機讀寫速度遠快于傳統機械硬盤(HDD),將交換空間放在SSD上能顯著提高交換效率。若系統已有SSD,建議將交換分區或文件創建在SSD上(如/dev/sda1
或/mnt/ssd/swapfile
)。
3. 優化交換空間大小,匹配內存需求
交換空間大小需根據物理內存容量調整,避免過大或過?。?/p>
free -h
或swapon --show
查看),可適當增加交換空間(如新增交換文件)。4. 使用多個交換文件,提升并發性能
創建多個較小的交換文件(如2個2GB的交換文件)而非單個大交換文件,能讓Linux內核更高效地并行處理交換請求,提升整體交換效率。
sudo fallocate -l 2G /swapfile1 && sudo chmod 600 /swapfile1 && sudo mkswap /swapfile1 && sudo swapon /swapfile1
sudo fallocate -l 2G /swapfile2 && sudo chmod 600 /swapfile2 && sudo mkswap /swapfile2 && sudo swapon /swapfile2
/etc/fstab
實現開機自動掛載:/swapfile1 none swap sw 0 0
/swapfile2 none swap sw 0 0
5. 調整內核相關參數,優化內存管理
除swappiness
外,還可調整以下內核參數進一步優化交換性能:
vm.dirty_background_ratio
:控制后臺寫入磁盤的臟頁(修改后未寫入磁盤的內存頁)比例,默認值為10。降低該值(如5)可讓系統更早將臟頁寫入磁盤,減少交換空間的占用;vm.dirty_ratio
:控制強制寫入磁盤的臟頁比例,默認值為20。降低該值(如10)可避免大量臟頁堆積導致內存壓力過大。/etc/sysctl.conf
文件,添加或修改對應參數,然后運行sudo sysctl -p
生效。6. 監控交換使用情況,及時調整策略
定期監控交換空間的使用情況,能及時發現內存瓶頸并調整策略:
free -h
命令查看內存和交換空間的使用量(如total
、used
、free
);swapon --show
命令查看交換分區的使用率(如Size
、Used
);top
或htop
命令監控進程的內存占用,找出占用內存過多的進程并進行優化(如關閉不必要的服務或優化程序代碼)。7. 啟用交換分區優先級,優化使用順序
若系統有多個交換分區或文件,可通過設置優先級(pri
參數)讓系統優先使用速度更快的交換空間(如SSD上的交換文件)。
/etc/fstab
文件,在交換分區或文件條目中添加pri=value
(值越大優先級越高),例如:/dev/sda1 none swap sw,pri=100 0 0
/swapfile none swap sw,pri=50 0 0
/dev/sda1
(假設為SSD)上的交換分區。