Linux系統的緩存機制涉及內核參數、文件系統掛載選項、應用程序配置等多個層面,不同類型的緩存設置位置有所差異,以下是常見場景的詳細說明:
系統內核的緩存參數(如臟頁寫回閾值、目錄項緩存回收傾向等)主要通過**/etc/sysctl.conf
**文件配置(永久生效),也可通過/proc/sys/vm/
目錄下的虛擬文件臨時調整(立即生效,重啟后失效)。
/etc/sysctl.conf
:用于持久化內核緩存參數(如vm.dirty_ratio
、vm.dirty_background_ratio
、vm.vfs_cache_pressure
等),修改后需執行sudo sysctl -p
使配置生效。/proc/sys/vm/
:動態調整內核緩存參數的虛擬目錄,例如:
vm.dirty_ratio
(臟頁占總內存比例,超過則觸發寫回):echo 40 > /proc/sys/vm/dirty_ratio
vm.dirty_background_ratio
(后臺寫回臟頁的閾值):echo 10 > /proc/sys/vm/dirty_background_ratio
vm.vfs_cache_pressure
(目錄項/inode緩存回收傾向,值越高回收越積極):echo 50 > /proc/sys/vm/vfs_cache_pressure
。文件系統緩存(如noatime
、nodiratime
)通過**/etc/fstab
**文件配置(永久生效),修改后需重新掛載文件系統或重啟系統。
/etc/fstab
:在掛載選項中添加noatime
(禁用文件訪問時間更新)、nodiratime
(禁用目錄訪問時間更新)或relatime
(減少訪問時間更新頻率),例如:UUID=your-uuid / ext4 defaults,noatime,nodiratime 0 1
sudo mount -o remount /mount_point
可立即應用更改。不同應用程序的緩存設置位于其各自的配置目錄中,以下是常見示例:
/etc/apt/sources.list
和/etc/apt/sources.list.d/
(配置緩存策略,如Acquire::http::Cache-Limit "100000000"
設置HTTP緩存大?。?。/etc/nginx/nginx.conf
(配置代理緩存路徑、大小及過期時間),例如:http {
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
location / {
proxy_cache my_cache;
proxy_pass http://backend;
}
}
}
修改后需重啟Nginx(sudo systemctl restart nginx
)。數據庫的緩存(如查詢緩存、緩沖池)通過其自身的配置文件設置:
/etc/mysql/my.cnf
或/etc/my.cnf
(配置query_cache_size
、innodb_buffer_pool_size
等參數)。/etc/postgresql/<version>/main/postgresql.conf
(配置shared_buffers
、work_mem
等參數)。/etc/redis/redis.conf
(配置maxmemory
、maxmemory-policy
等參數)。瀏覽器緩存由瀏覽器自身管理,配置文件位于用戶個人目錄下:
~/.mozilla/firefox/profiles.ini
(通過about:config
界面調整緩存大?。?。~/.config/google-chrome/Default/Preferences
(通過chrome://settings/clearBrowserData
清理緩存,或通過about:flags
調整緩存策略)。需要注意的是,修改配置文件前務必備份原始文件,避免誤操作導致系統異常;部分配置(如/etc/sysctl.conf
)需重啟服務或系統才能生效,而/proc/sys/vm/
下的參數可立即生效但重啟后失效。生產環境中調整緩存參數時,建議先進行測試,確保不會影響系統穩定性。