linux

Linux系统优化秘籍:如何清理系统缓存

小樊
52
2025-10-02 10:51:50
栏目: 智能运维

Linux系统缓存清理指南:步骤、命令与注意事项

一、Linux系统缓存类型及作用

在清理缓存前,需了解Linux系统的主要缓存类型及其作用,避免误操作影响系统性能:

二、手动清理缓存的常用命令

1. 清理前准备:同步数据到磁盘

清理缓存前,需用sync命令将内存中的未写入数据(脏页)同步到磁盘,避免数据丢失:

sudo sync

2. 针对性清理缓存

3. 一键清理(简化操作)

若需快速清理所有缓存,可合并syncecho命令:

sudo sh -c 'sync && echo 3 > /proc/sys/vm/drop_caches'

4. 查看缓存使用情况

清理前后可通过以下命令监控缓存变化:

三、缓存清理的进阶操作

1. 调整缓存回收倾向

通过修改vfs_cache_pressure参数,控制内核回收Dentries和Inodes缓存的积极性(默认值100,值越大回收越积极):

# 临时调整(重启失效)
sudo sysctl -w vm.vfs_cache_pressure=50
# 永久调整(写入配置文件)
echo "vm.vfs_cache_pressure=50" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p  # 生效配置

2. 定期自动清理缓存

通过crontab设置定时任务,例如每天凌晨2点清理所有缓存:

crontab -e

添加以下内容:

0 2 * * * sync && echo 3 > /proc/sys/vm/drop_caches

3. 创建Systemd服务(开机自动清理)

若需系统启动时自动清理缓存,可创建Systemd服务:

sudo nano /etc/systemd/system/clear-cache.service

写入以下内容:

[Unit]
Description=Clear Linux Cache
After=network.target

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'echo 3 > /proc/sys/vm/drop_caches'

[Install]
WantedBy=multi-user.target

启用并启动服务:

sudo systemctl enable clear-cache.service
sudo systemctl start clear-cache.service

4. 清理被删除但仍被进程占用的文件

若系统存在“已删除但仍被进程占用”的文件(可通过lsof | grep deleted查看),清理缓存可释放其占用的内存:

# 查找被删除的文件
lsof | grep deleted
# 清理缓存(需结合sudo权限)
sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches

四、缓存清理的注意事项

0
看了该问题的人还看了