Linux清理技巧大公开:提升系统性能的秘诀
导读:Linux 清理与性能优化实用指南 一 快速定位空间占用 查看整体磁盘使用:使用命令:df -h,快速识别接近满的分区。 定位大目录/大文件:从根目录逐级排查,示例:du -sh / 2>/dev/null | sort -rh |...
Linux 清理与性能优化实用指南
一 快速定位空间占用
- 查看整体磁盘使用:使用命令:df -h,快速识别接近满的分区。
- 定位大目录/大文件:从根目录逐级排查,示例:du -sh / 2> /dev/null | sort -rh | head -n 10*;对可疑目录继续深入。
- 检查 inode 是否耗尽:df -i,大量小文件场景常见“空间未满但无法写入”。
- 交互式分析器:ncdu /,更直观地发现占用热点。
- 容器与镜像场景:如存在 Docker,可用 docker system prune -a 清理无用镜像/容器/网络(谨慎,会删除未使用资源)。
二 安全清理与优化清单
- 包管理器缓存
- Debian/Ubuntu:sudo apt-get clean & & sudo apt-get autoclean
- RHEL/CentOS:sudo yum clean all
- Fedora:sudo dnf clean all
- 删除无用依赖与旧软件
- Debian/Ubuntu:sudo apt-get autoremove --purge
- RHEL/CentOS:sudo yum remove ;如需自动移除无用依赖:sudo yum autoremove
- 临时文件
- 系统临时目录:sudo rm -rf /tmp/;sudo rm -rf /var/tmp/(确保无关键进程在使用)
- 日志与 journald
- 按时间保留:sudo journalctl --vacuum-time=3d
- 按大小保留:sudo journalctl --vacuum-size=200M
- 配合日志轮转:确保 /etc/logrotate.conf 与 /etc/logrotate.d/ 配置合理,避免日志无限增长
- 旧内核(Debian/Ubuntu)
- 查看:dpkg --list | grep linux-image
- 保留最新 2 个并删除其余:sudo apt-get purge $(dpkg -l | grep linux-image | awk ‘{ print $2} ’ | tail -n +3)
- 用户缓存与下载目录
- 清理用户缓存:rm -rf ~/.cache/;rm -rf ~/Downloads/(按需)
- 图形化工具(可选)
- BleachBit(系统清理)、Baobab(磁盘使用分析)
三 内存与内核参数优化
- 理解机制:Linux 会利用空闲内存做 页面缓存(Page Cache) 提升 I/O,手动清理缓存通常仅用于定位或应急,不建议作为日常操作。
- 手动清理缓存(应急)
- 同步后清理:sync & & echo 3 | sudo tee /proc/sys/vm/drop_caches(分别可 echo 1/2 清理页面缓存/目录项与 inode 缓存)
- 交换与回收策略
- 降低换入倾向:sudo sysctl -w vm.swappiness=10(默认通常为 60,视负载与内存大小调整)
- 脏页回写阈值:结合负载调节 vm.dirty_ratio / vm.dirty_background_ratio,避免一次性大回写抖动
- 监控与诊断
- 工具:free -m、top、vmstat、sar、slabtop、/proc/meminfo;关注 buffers/cache、slab、active/inactive 等指标区分缓存与应用占用
- 进阶(面向特定负载)
- HugePages(大页)、NUMA 亲和、应用层内存泄漏排查(如 Valgrind)
四 自动化与预防
- 定时清理脚本示例(/root/cleanup.sh)
- 示例内容:
- journald 保留最近 3 天:journalctl --vacuum-time=3d
- APT 缓存清理:apt-get clean & & apt-get autoclean
- 临时文件:rm -rf /tmp/ /var/tmp/**
- 赋权与定时:chmod +x /root/cleanup.sh;在 crontab -e 中添加(如每天 03:00):0 3 * * * /root/cleanup.sh
- 示例内容:
- 日志与监控预防
- 确保 logrotate 正确配置并按日/周轮转压缩
- 磁盘阈值告警脚本(示例阈值 90%):
- 阈值检测与告警:CURRENT=$(df / | tail -1 | awk ‘{ print $5} ’ | sed ‘s/%//’); if [ “$CURRENT” -gt 90 ]; then echo “Disk space alert on $(hostname)” | mail -s “Disk Alert” admin@example.com; fi
- 容器场景预防
- 限制容器日志大小:docker run --log-driver json-file --log-opt max-size=10m --log-opt max-file=3
- 虚拟机/云盘场景
- 若支持 LVM,空间不足可在线扩容后调整文件系统:lvextend -L +10G /dev/mapper/vg-root & & resize2fs /dev/mapper/vg-root(按实际 LV 与文件系统执行)
五 操作注意事项
- 备份关键数据与配置,优先在测试环境验证脚本与命令。
- 谨慎操作 /var/log/ 与 journald,避免误删正在写入的日志导致故障排查困难。
- 清理 /tmp 前确认无关键进程占用;必要时可先停止相关服务。
- 生产环境不建议频繁手动 drop_caches,优先优化应用与 I/O 路径。
- 删除旧内核前务必确认当前运行内核不在删除列表中,保留至少 1–2 个可回退版本。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux清理技巧大公开:提升系统性能的秘诀
本文地址: https://pptw.com/jishu/766812.html
