Linux系统清理缓存的有效方法与注意事项
页面缓存用于加速文件读取,是Linux系统最常用的缓存类型。清理命令需分两步:
sync 命令将未写入磁盘的缓存数据强制写入磁盘,避免数据丢失;echo 1 > /proc/sys/vm/drop_caches 清空页面缓存。sudo sync && sudo echo 1 > /proc/sys/vm/drop_caches。dentry(目录缓存)和inode缓存用于存储文件/目录的元数据(如名称、权限、位置),清理后可释放目录结构占用的内存。命令:
sudo sync && sudo echo 2 > /proc/sys/vm/drop_caches。若需一次性释放所有缓存,可使用以下命令(生产环境慎用,可能导致系统暂时卡顿):
sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches(等同于echo 1+echo 2的效果)。以人类可读格式(GB/MB)显示内存使用情况,重点关注buff/cache(缓存)和available(可用内存)列:
free -h。
实时监控系统内存、交换区、I/O等状态,1表示每秒刷新一次:
vmstat 1(可观察缓存清理前后的cache列变化)。
控制内核回收dentry/inode缓存的优先级,默认值100(合理比例)。增大该值(如500)可强制内核更积极地回收缓存(适用于内存紧张场景);减小该值(如50)则保留更多缓存(适用于频繁访问文件的场景)。
设置命令:sudo sysctl -w vm.vfs_cache_pressure=500(临时生效);永久生效需写入/etc/sysctl.conf文件。
APT包管理器的缓存会占用/var/cache/apt/archives/目录,清理命令:
sudo apt-get clean(删除所有已下载的软件包);
sudo apt-get autoclean(仅删除旧版本的软件包)。
YUM/DNF的缓存位于/var/cache/yum/或/var/cache/dnf/,清理命令:
sudo yum clean all(YUM);
sudo dnf clean all(DNF)。
/tmp用于存储临时文件,可安全删除其中的内容(系统重启也会自动清理):
sudo rm -rf /tmp/*。
若需定期清理缓存,可将命令添加到cron作业中(建议在低峰时段执行,如凌晨2点):
crontab -e;0 2 * * * sync && echo 3 > /proc/sys/vm/drop_caches。sudo(root权限),否则无法执行;sync命令,防止未写入磁盘的数据丢失。