CentOS 缓存清理与回收指南
一 内存页缓存与缓冲区回收
sync
echo 3 | sudo tee /proc/sys/vm/drop_caches
sync
echo 1 | sudo tee /proc/sys/vm/drop_caches
sync
echo 2 | sudo tee /proc/sys/vm/drop_caches
二 DNS 缓存清理
sudo systemd-resolve --flush-caches
sudo systemd-resolve --statistics # 查看缓存统计
sudo systemctl stop nscd
sudo nscd -i hosts
sudo systemctl start nscd
三 包管理器与临时文件缓存清理
sudo yum clean all # CentOS 7
sudo dnf clean all # CentOS 8+
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
# 或使用 systemd-tmpfiles 清理(推荐)
sudo systemd-tmpfiles --clean
# 旧文件可按时间清理(示例:/tmp 下 7 天未访问)
sudo tmpwatch 7d /tmp
sudo tmpwatch 7d /var/tmp
四 日志与磁盘空间回收
sudo journalctl --vacuum-time=2weeks
sudo journalctl --vacuum-size=100M
# 截断超大日志
find /var/log -type f -name "*.log" -size +50M -mtime +7 -exec truncate -s 0 {} \;
# 删除较旧日志
find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;
sudo du -sh * | sort -hr | head -n 10
sudo find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null
sudo yum install -y ncdu
ncdu /
五 长期优化与监控建议
free -h
cat /proc/meminfo | grep -i "Cached\|MemAvailable"
vmstat -s
vm.swappiness = 10
vm.vfs_cache_pressure = 50
vm.dirty_ratio = 30
vm.dirty_background_ratio = 5