温馨提示×

ubuntu内存清理有哪些方法

小樊
37
2025-12-13 09:31:22
栏目: 智能运维

Ubuntu 内存与存储清理实用方法

一 先确认是“内存”还是“磁盘”不足

  • 查看内存使用:free -h(关注 availableused
  • 查看磁盘使用:df -h
  • 查看目录占用:du -h --max-depth=1 /path
  • 查看日志占用:sudo journalctl --disk-usage 以上命令分别用于判断是否需要做“内存缓存释放”还是“磁盘垃圾清理”。

二 释放内存缓存 PageCache Dentries Inodes(仅在必要时使用)

  • 执行步骤(逐条运行,或按需选择):
    • 同步数据到磁盘:sudo sync
    • 仅释放 PageCache:echo 1 | sudo tee /proc/sys/vm/drop_caches
    • 仅释放 dentries 和 inodes:echo 2 | sudo tee /proc/sys/vm/drop_caches
    • 释放全部三类缓存:echo 3 | sudo tee /proc/sys/vm/drop_caches
  • 影响与建议:清理缓存会使系统短期内变慢(需要重新加载数据),仅在出现内存紧张或做性能对比测试时使用;不建议写入定时任务长期执行。

三 清理磁盘空间(APT 缓存 日志 临时文件 旧内核 包管理器)

  • APT 缓存与无用依赖
    • 删除已下载的包文件:sudo apt-get clean
    • 删除旧版本索引/不可达包:sudo apt-get autoclean
    • 删除不再需要的依赖:sudo apt-get autoremove
  • 系统日志 journald
    • 查看大小:sudo journalctl --disk-usage
    • 按时间保留:sudo journalctl --vacuum-time=7d
    • 按大小保留:sudo journalctl --vacuum-size=500M
  • 临时文件
    • 清理临时目录:sudo rm -rf /tmp/*(确保无关键程序在使用)
    • 系统级临时文件也可由 systemd-tmpfiles 机制按策略清理
  • 旧内核(先确认当前内核,再删除旧版)
    • 查看当前内核:uname -r
    • 列出已安装内核:dpkg --list | grep linux-image
    • 删除指定旧内核:sudo apt-get purge linux-image-<version>
  • 其他包管理器
    • Snap:列出旧修订 sudo snap list --all,按修订删除 sudo snap remove --revision=<rev> <snap-name>
    • Flatpak:flatpak uninstall <app-id>,必要时 flatpak repair
  • 第三方清理工具
    • BleachBitsudo apt-get install bleachbit,图形界面勾选项目后清理(谨慎选择)。

四 用户级缓存与开发环境清理(可选)

  • 浏览器缓存
    • Firefox:rm -rf ~/.cache/mozilla/firefox/*
    • Chrome:rm -rf ~/.cache/google-chrome/*
  • 缩略图缓存:rm -rf ~/.cache/thumbnails/*
  • VS Code 预编译头缓存:rm -rf ~/.cache/vscode-cpptools/ipch
  • Conda 包缓存:conda clean -a
  • pip 缓存:rm -r ~/.cache/pip
  • 如为虚拟机环境,可清理 VMware 拖放缓存:rm -rf ~/.cache/vmware/drag_and_drop/* 以上路径与命令可显著减少用户目录占用的“磁盘空间”。

五 安全与维护建议

  • 清理缓存(drop_caches)只作临时手段,避免写入 cron 长期执行,以免影响性能与稳定性。
  • 删除旧内核前务必确认当前运行内核版本,至少保留一到两个可用旧内核以便回退。
  • 清理 /tmp 等临时目录时,确保相关服务已停止或不在使用,避免程序异常。
  • 重要操作前建议备份关键数据;删除前可用 du -h --max-depth=1 逐级确认占用来源。

0