ubuntu系统如何自动回收
导读:Ubuntu 自动回收设置指南 内存回收自动机制与可调参数 内核通过守护进程 kswapd 在后台回收内存,依据 pages_min/pages_low/pages_high 三个水位进行回收;当空闲内存低于 pages_min 时触发更...
Ubuntu 自动回收设置指南
内存回收自动机制与可调参数
- 内核通过守护进程 kswapd 在后台回收内存,依据 pages_min/pages_low/pages_high 三个水位进行回收;当空闲内存低于 pages_min 时触发更积极回收,低于 pages_high 时停止回收。脏页写回由 pdflush/bdi 按阈值与周期执行(如 dirty_background_ratio、dirty_ratio、dirty_writeback_centisecs、dirty_expire_centisecs)。回收时优先释放可回收的文件页,对不常访问的匿名页则通过 Swap 换出。可通过 /proc/sys/vm/swappiness 调整回收倾向(范围 0–100,数值越大越倾向使用 Swap;即便设为 0,在极端内存压力下仍可能发生 Swap)。不建议手动频繁清空缓存,通常交由内核自动管理即可。
磁盘回收自动机制与常用命令
- 包管理缓存:定期清理 APT 缓存以释放空间,常用命令为 sudo apt clean(清空全部)与 sudo apt autoclean(仅删过期)。
- 旧内核与依赖:使用 sudo apt autoremove --purge 移除不再需要的依赖和旧内核(请谨慎保留当前与最新内核)。
- 系统日志:使用 journalctl --vacuum-time=7d 或 –vacuum-size=100M 限制 systemd-journald 日志占用。
- 临时与缩略图:按需清理 /tmp 与用户目录 ~/.cache/thumbnails。
- 图形化工具:可选 BleachBit、Stacer 批量清理浏览器缓存、应用缓存与系统临时文件。以上操作可配合定时任务实现自动化。
自动化方案与示例脚本
- 回收站自动清理:安装 autotrash,按时间或剩余空间自动清理用户回收站。
- 安装:sudo apt-get install autotrash
- 示例:删除回收站中超过 30 天的文件
- autotrash -d 30
- 示例:当空闲空间低于 2GB 时,删除超过 7 天的文件
- autotrash --max-free 2048 -d 7
- 定时清理脚本与 Cron(示例)
- 建议将脚本放到 /usr/local/bin/cleanup.sh,内容示例:
- #!/bin/bash
set -e
清理 APT 缓存
apt-get -y autoclean apt-get -y clean移除无用依赖与旧内核(保留当前与最新 1 个)
apt-get -y autoremove --purge current_kernel=$(uname -r) latest_kernel=$(dpkg -l | awk ‘$1==“ii” & & $2~“^linux-image-[0-9]” { print $2} ’ | sort -V | tail -n1) dpkg -l | awk ‘$1==“ii” & & $2~“^linux-image-[0-9]” { print $2} ’ | sort -V |
grep -v “$current_kernel” | grep -v “$latest_kernel” | xargs -r apt-get -y purge清理 systemd 日志(保留 7 天)
journalctl --vacuum-time=7d清理缩略图缓存
rm -rf /home//.cache/thumbnails/
- #!/bin/bash
set -e
- 赋权并加入 root 的 cron(如每天 02:00 执行):
- sudo chmod +x /usr/local/bin/cleanup.sh
- sudo crontab -e 添加:0 2 * * * /usr/local/bin/cleanup.sh
- 建议将脚本放到 /usr/local/bin/cleanup.sh,内容示例:
- 不建议的定时清缓存做法:通过 echo 1/2/3 > /proc/sys/vm/drop_caches 强制清空页面/目录项/inode 缓存,可能干扰内核自适应的缓存与 I/O 调度,仅在明确问题且短时使用,不作为常规自动化手段。
监控与告警建议
- 内存与 Swap:使用 free -m、vmstat 2(关注 si/so 的换入/换出频率)、sar -B(分页统计)观察回收与换页行为;当 Swap 使用升高且伴随明显 si/so 时,优先检查工作负载、内存泄漏或调整 swappiness 与回收阈值。
- 磁盘空间:使用 df -h 查看分区占用,配合 ncdu / 快速定位大目录;对日志与缓存目录设置周期性清理策略。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu系统如何自动回收
本文地址: https://pptw.com/jishu/748100.html
