一、查看緩存使用情況
優化前需明確當前緩存狀態,常用命令如下:
cache
列表示文件緩存總量,buff
列表示緩沖區緩存);二、清理緩存(臨時優化)
CentOS通過/proc/sys/vm/drop_caches
接口清理緩存,操作前需先執行sync
命令(將內存中的待寫入數據同步至磁盤,避免數據丟失):
echo 1 > /proc/sys/vm/drop_caches
(適用于內存緊張但需保留目錄項/索引節點緩存的場景);echo 2 > /proc/sys/vm/drop_caches
(適用于文件系統元數據占用過多的情況);echo 3 > /proc/sys/vm/drop_caches
(同時清理頁緩存、目錄項和索引節點緩存,慎用)。三、調整內核參數(長期優化)
通過修改內核參數優化緩存行為,需編輯/etc/sysctl.conf
文件(修改后執行sysctl -p
生效):
vm.dirty_ratio
(臟頁占內存的最大比例,默認20%)和vm.dirty_background_ratio
(后臺刷臟的閾值,默認10%)。適當增大dirty_ratio
(如40%)可減少頻繁磁盤寫入,提升緩存寫入效率;vm.vfs_cache_pressure
(默認100,值越高越易回收inode/dentry緩存)。建議設置為50,保留更多文件系統緩存,提升文件訪問性能;vm.swappiness
(默認60,值越高越易使用Swap)。建議設置為10-30(內存充足時可設為10),減少對Swap的依賴,提升物理內存利用率。四、配置應用層緩存
通過應用層緩存工具減輕后端存儲壓力,常見方案:
nginx.conf
,添加proxy_cache_path
指令配置緩存路徑(如/tmp/nginx
)、大?。?code>max_size 1g)、過期時間(inactive 60m
),并啟用緩存功能;/etc/varnish/default.vcl
,設置緩存大?。?code>shm_size 1g)、后端服務器地址,啟動Varnish服務(systemctl start varnish
);五、優化文件系統與掛載選項
/etc/fstab
文件,在對應掛載點添加noatime
選項(如/dev/sda1 / ext4 defaults,noatime 0 1
),避免每次文件訪問都更新訪問時間元數據,減少磁盤I/O;noop
或deadline
,HDD使用cfq
),通過echo noop > /sys/block/sda/queue/scheduler
臨時修改,永久生效需修改/etc/default/grub
中的GRUB_CMDLINE_LINUX
參數。六、硬件升級(終極優化)
若軟件優化無法滿足需求,可通過硬件升級提升緩存性能:
七、監控與維護
建立緩存監控機制,定期分析性能瓶頸:
free -m
查看緩存占用,vmstat 1
監控緩存變化,iostat -x 1
查看磁盤I/O負載;/var/log/messages
)和應用日志,定位緩存未命中或性能下降的原因;0 0 1 * * echo 3 > /proc/sys/vm/drop_caches
)。