系统性能检查
> 目标:采集系统 CPU、内存和磁盘 IO 性能数据,自动判定各项指标的健康状态,输出符合运维标准的检查报告。
适用场景
当用户提出以下需求时触发此 skill:
-
"检查系统性能"、"查看 CPU/内存/磁盘占用"
-
"做一次性能巡检"、"出一份运维报告"
-
"系统负载怎么样"、"性能有没有问题"
-
任何涉及系统资源使用率检查的场景
核心原则
-
使用脚本采集:所有数据通过
scripts/sys_check.sh采集,确保数据准确性和一致性 -
自动状态判定:脚本内置阈值判断逻辑,自动输出 normal / warning / critical 状态
-
多格式输出:支持 json、text、report 三种格式,默认使用 report 格式输出完整运维报告
阈值标准
| 指标 | 正常 (normal) | 警告 (warning) | 严重 (critical) |
|------|:---:|:---:|:---:|
| CPU 使用率 | < 70% | 70% ~ 90% | ≥ 90% |
| 内存使用率 | < 70% | 70% ~ 90% | ≥ 90% |
| 磁盘 IO 利用率 | < 70% | 70% ~ 90% | ≥ 90% |
| 磁盘空间使用率 | < 80% | 80% ~ 95% | ≥ 95% |
详细阈值说明和排查建议见 references/thresholds.md。
使用方式
脚本位置:scripts/sys_check.sh
基本用法(输出完整运维报告)
bash scripts/sys_check.sh --format report
参数说明
| 参数 | 说明 | 默认值 |
|------|------|--------|
| --duration N | 采样时长(秒) | 5 |
| --interval N | 采样间隔(秒) | 1 |
| --format json|text|report | 输出格式 | json |
输出格式示例
report 格式(推荐,完整运维报告):
bash scripts/sys_check.sh --format report
输出包含:各指标数值、状态判定、异常告警、处理建议、综合评估。
json 格式(适合程序处理):
bash scripts/sys_check.sh --format json
输出结构化 JSON,包含所有采集数据和状态标记。
text 格式(简洁摘要):
bash scripts/sys_check.sh --format text
输出精简文本摘要,适合快速查看。
工作流程
-
运行脚本采集数据:执行
sys_check.sh --format report,采集 CPU、内存、磁盘 IO 和磁盘空间数据 -
解读结果:根据脚本输出的状态判定(normal / warning / critical),识别异常指标
-
输出运维报告:将采集结果整理为符合运维规范的报告,包含:
- 各指标数值与状态
-
异常指标的告警级别和处理建议
-
综合评估结论
4. 如有异常:提供排查命令和优化建议,必要时可进一步执行诊断
报告输出规范
运维报告需包含以下要素:
-
检查概要:主机名、检查时间、采样参数
-
各指标详情:数值、状态、告警
-
异常处理建议:针对 warning/critical 状态给出具体排查步骤
-
综合评估:整体健康状态和后续行动建议
异常处理建议速查
CPU 异常
# 高 CPU 占用进程
ps aux --sort=-%cpu | head -10
内存异常
# 高内存占用进程
ps aux --sort=-%mem | head -10
# Swap 使用情况
free -h
磁盘 IO 异常
# 实时磁盘 IO
iostat -dx 1 5
磁盘空间异常
# 各分区空间
df -h -x tmpfs -x devtmpfs
# 大文件排行
du -h --max-depth=1 / | sort -rh | head -10
示例
示例 1:日常巡检
用户说:"帮我做一次系统性能巡检"
bash scripts/sys_check.sh --format report
解读报告结果,对各项指标状态进行总结。如有异常项,给出具体处理建议。
示例 2:延长采样时间
用户说:"做一个更详细的性能检查,采样 30 秒"
bash scripts/sys_check.sh --duration 30 --format report
示例 3:获取 JSON 数据
用户说:"我要把性能数据接入监控系统"
bash scripts/sys_check.sh --format json