当CentOS系统的缓存占用过高时,可以采取以下几种方法来解决:
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
在执行清理操作之前,建议先运行 sync 命令,以确保所有缓存数据写入磁盘。vm.dirtybackgroundratio 和 vm.dirty_ratio:
这些参数控制脏页的写回策略。可以调整这些参数以减少缓存占用的时间。sudo sysctl -w vm.dirty_background_ratio=10
sudo sysctl -w vm.dirty_ratio=20
为了使这些设置在重启后仍然有效,可以将它们添加到 /etc/sysctl.conf 文件中:echo "vm.dirty_background_ratio=10" | sudo tee -a /etc/sysctl.conf
echo "vm.dirty_ratio=20" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
vm.vfs_cache_pressure:
这个参数控制内核回收用于文件系统元数据和inode缓存的页面的倾向。较高的值会使内核更倾向于回收这些缓存。sudo sysctl -w vm.vfs_cache_pressure=50
为了持久化设置,添加到 /etc/sysctl.conf:echo "vm.vfs_cache_pressure=50" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
vm.swappiness 参数,控制内核使用交换空间的策略。该值范围为0-100,数值越低越倾向于少用交换空间。sudo sysctl -w vm.swappiness=10
为了使更改永久生效,可以在 /etc/sysctl.conf 文件中添加以下行:vm.swappiness=10
http {
proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend_server;
proxy_cache my_cache;
proxy_cache_valid 200 302 30m;
proxy_cache_valid 404 1m;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
proxy_cache_bypass $http_cache_control;
proxy_cache_key $scheme $host $request_uri $is_args $args;
}
}
}
重启Nginx以应用新的配置:sudo systemctl restart nginx
通过上述方法,可以有效地管理和优化CentOS系统的缓存,从而提升系统性能和响应速度。在进行任何系统级操作之前,建议先备份重要数据,以防万一。