Linux清理技巧大公开:提升系统性能的秘诀
小樊
40
2025-12-09 06:20:18
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 个可回退版本。