ubuntu如何回收系统资源
导读:Ubuntu 系统资源回收实用指南 一 内存资源回收 查看内存与缓存概况:使用命令查看内存与缓存使用,例如 free -h、top/htop。内核会利用空闲内存做页缓存、目录项与索引节点缓存来加速 I/O,这属于正常且有益的行为。 手动释...
Ubuntu 系统资源回收实用指南
一 内存资源回收
- 查看内存与缓存概况:使用命令查看内存与缓存使用,例如 free -h、top/htop。内核会利用空闲内存做页缓存、目录项与索引节点缓存来加速 I/O,这属于正常且有益的行为。
- 手动释放页面缓存(仅在必要时):执行 sync 确保数据落盘,再写入到内核接口清理缓存。示例:
- 仅清理页缓存:sync & & echo 1 | sudo tee /proc/sys/vm/drop_caches
- 清理目录项与索引节点:sync & & echo 2 | sudo tee /proc/sys/vm/drop_caches
- 清理全部三类缓存:sync &
&
echo 3 | sudo tee /proc/sys/vm/drop_caches
说明:该操作会使系统短时性能下降,生产环境不建议频繁执行。
- 调整内存回收倾向(swappiness):降低值可减少换页,优先回收页面缓存。查看与设置示例:
- 查看:cat /proc/sys/vm/swappiness(常见默认值为60)
- 临时设置:sudo sysctl -w vm.swappiness=10
- 永久生效:在 /etc/sysctl.conf 中添加 vm.swappiness=10 后执行 sudo sysctl -p
提示:在内存充足、以交互响应为主的桌面/开发环境,适当降低更有利;在内存紧张或服务器负载场景,保持较高值更稳妥。
二 磁盘空间回收
- 清理 APT 缓存与无用依赖:
- 清理所有已下载包:sudo apt clean(目录:/var/cache/apt/archives)
- 仅清理过期包:sudo apt autoclean
- 删除不再需要的依赖:sudo apt autoremove(彻底连同配置:sudo apt autoremove --purge)
- 清理旧内核(避免 /boot 爆满):
- 查看当前与已安装内核:uname -r;dpkg --list | grep linux-image
- 删除旧版本(保留当前与至少一个备用):sudo apt purge linux-image-< 版本号> ;也可 sudo apt autoremove --purge 自动清理
- 清理系统日志(journald):
- 查看占用:sudo journalctl --disk-usage
- 按时间保留:sudo journalctl --vacuum-time=7d
- 按大小限制:sudo journalctl --vacuum-size=100M
- 清理缩略图与用户缓存:
- 缩略图:rm -rf ~/.cache/thumbnails/*(会自动再生)
- 用户缓存:谨慎清理 ~/.cache/* 中可确认无影响的数据
- 清理临时文件:sudo rm -rf /tmp/*(系统重启也会自动清理,运行时请避免删除正在使用的临时文件)
- 查找并删除大文件:
- 交互式分析:sudo apt install ncdu & & ncdu /
- 按大小查找:find /path -type f -size +100M
- 图形化工具辅助:
- 磁盘占用分析器(Disk Usage Analyzer/Baobab)定位大目录
- 系统清理工具:sudo apt install bleachbit;sudo bleachbit 进行选择性清理
三 容器与包管理器缓存
- Snap:列出所有修订版:snap list --all;删除旧修订:sudo snap remove --revision=< 修订号> < 应用名>
- Flatpak:清理未使用运行时与未使用应用:flatpak uninstall --unused;必要时 flatpak repair
- Python 与 Conda(如已安装):pip cache purge;conda clean -p/-a
四 自动化与长期策略
- 定期清理脚本与定时任务:
- 示例脚本(/root/clean_cache.sh):
#!/bin/bash
sync & & echo 1 | sudo tee /proc/sys/vm/drop_caches
sudo apt clean & & sudo apt autoremove -y
sudo journalctl --vacuum-time=7d
rm -rf /tmp/* - 赋权与定时:chmod +x /root/clean_cache.sh;sudo crontab -e 添加 0 2 * * * /root/clean_cache.sh
- 示例脚本(/root/clean_cache.sh):
- 日志与配额策略:
- 持续限制日志体积(journald.conf 中设置 SystemMaxUse、MaxRetentionSec 等)
- 如需限制用户磁盘用量,可启用磁盘配额(usrquota/grpquota)并配置 edquota
五 安全与排错要点
- 删除旧内核前务必确认当前运行内核:uname -r,至少保留1–2个可用内核版本,避免误删导致无法启动。
- 清理日志时优先使用 journalctl 的子命令(–vacuum-time/size),避免直接删除正在写入的日志文件。
- 执行 rm -rf 前先确认路径与作用范围,重要数据请先备份;对系统目录操作保持谨慎。
- 不建议频繁手动清理内存缓存;若需长期优化,优先从“减少不必要服务、优化 swappiness、规范日志与缓存策略”入手。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu如何回收系统资源
本文地址: https://pptw.com/jishu/748105.html
