Debian怎样进行系统资源监控回收
小樊
37
2025-11-20 19:40:43
Debian系统资源监控与回收实操指南
一 监控总览与常用命令
- 资源总览与进程
- 使用命令:top/htop(进程与CPU/内存)、free -h(内存与Swap)、vmstat 1 5(虚拟内存/进程/I/O/CPU)、iostat -xz 1(磁盘I/O)、df -h(磁盘空间)、ss -tulnp(网络连接与监听端口)。这些命令覆盖日常排障所需的关键维度,便于快速定位异常占用。
- 日志与可视化
- 使用 journalctl 查看与分析 systemd 日志(如按服务、时间范围过滤),配合 logrotate 做日志轮转,避免日志无限增长。
- 需要可视化与告警时,可部署 Prometheus + Grafana 或 Zabbix 做长期监控与阈值告警。
二 内存与Swap的监控与回收
- 监控要点
- 通过 free -h 与 vmstat 观察可用内存、缓存(buff/cache)与Swap使用;htop 可快速定位占用最高的进程。
- 回收与优化
- 清理可回收的页面缓存(仅在必要时执行,避免影响性能):
- 仅清理页面缓存:echo 1 > /proc/sys/vm/drop_caches
- 清理目录项与inode缓存:echo 2 > /proc/sys/vm/drop_caches
- 清理页面、目录项与inode缓存:echo 3 > /proc/sys/vm/drop_caches
- 配置与检查Swap:swapon --show 查看当前交换;必要时在 /etc/fstab 增加交换分区/文件,缓解内存压力。
- OOM处理:当内存耗尽,内核 OOM Killer 会终止占用过高的进程;可通过 /proc/sys/vm/oom_kill_allocating_task 调整策略(谨慎变更)。
三 磁盘空间与日志的监控与回收
- 快速定位大文件/目录
- 使用 df -h 查看分区使用率;用 ncdu 交互式分析目录占用,定位可清理对象。
- 日志轮转与清理
- 系统自带 logrotate 管理日志大小与保留周期;对 systemd 日志可用 journalctl 执行保留策略,例如:
- 保留最近 3 天:journalctl --vacuum-time=3d
- 限制日志总大小:journalctl --vacuum-size=50M
- 先轮转再清理:journalctl --rotate && journalctl --vacuum-time=1s
- 临时文件清理:/tmp 下临时文件可按需清理(如 rm -rf /tmp/*,生产环境建议结合服务状态谨慎执行)。
- 包管理缓存与旧包回收
- 清理APT缓存与无用依赖:
- 清理已下载包文件:apt-get clean
- 清理旧版本包文件:apt-get autoclean
- 删除不再需要的依赖:apt-get autoremove
- 连同配置文件一起移除无用包:apt-get purge <包名>
- 删除残留配置(状态为 rc 的包):
- 列出残留:dpkg --list | grep "rc "
- 批量清理(请先核对列表):apt-get purge $(dpkg -l | awk ‘/^rc/ {print $2}’)
- 旧内核回收:列出内核包后,使用 apt-get remove 删除不再使用的旧版本(务必保留当前运行内核)。
四 自动化与长期策略
- 定时清理脚本与cron
- 将常用清理动作写入脚本(如清理APT缓存、日志轮转、临时文件),用 crontab -e 添加定时任务,例如每日凌晨执行:
- 示例(按实际需求调整):
- 0 2 * * * /usr/bin/apt-get autoremove -y && /usr/bin/apt-get autoclean -y
- 0 3 * * * /usr/bin/journalctl --vacuum-time=3d
- 执行前务必在测试环境验证,避免误删。
- 服务与启动项优化
- 关闭不必要的服务,减少常驻占用:systemctl disable && systemctl stop 。
- 监控告警与可视化
- 轻量查看用 htop/glances;中长期与多主机建议部署 Prometheus + Grafana 或 Zabbix,配置阈值告警,提前发现资源瓶颈。