English | 简体中文
服务器运维实用脚本集合,用于 Docker 容器 CPU 排查与主机 CPU 性能压测。
| 脚本 | 语言 | 用途 |
|---|---|---|
| find_high_cpu_containers.sh | Bash | 扫描所有运行中的 Docker 容器,定位高 CPU 进程 |
| cpu_performance_test.py | Python 3 | CPU 性能基准测试(单线程 / 多进程 / 多线程等 7 项) |
扫描当前主机上所有运行中的 Docker 容器,列出每个容器内的进程 CPU 占用情况,标记超过阈值的进程(
- 遍历所有
running状态的容器,通过docker top获取容器内进程 - 支持按进程名过滤(如
python、java、node) - 支持自定义 CPU 阈值(默认 50%),超阈值进程标记为
⚠️ HIGH LOAD - 自动识别
docker top输出中的 CPU 列和命令列,适配不同发行版的输出格式 - 汇总表按容器总 CPU 降序排列,展示占用最高的前 10 个容器及其 Top 3 进程
- Linux + Bash
- 已安装 Docker,且当前用户有权限执行
docker ps/docker top
./find_high_cpu_containers.sh [process_filter] [cpu_threshold]| 参数 | 说明 | 默认值 |
|---|---|---|
process_filter |
按进程名过滤,如 python、java、node |
不过滤(所有进程) |
cpu_threshold |
CPU 占用告警阈值(百分比) | 50 |
# 分析所有进程,阈值 50%
./find_high_cpu_containers.sh
# 只分析 python 进程,阈值 50%
./find_high_cpu_containers.sh python
# 只分析 java 进程,阈值 80%
./find_high_cpu_containers.sh java 80
# 查看帮助
./find_high_cpu_containers.sh --help--- Container: web-app (ID: 3f9a1b2c3d4e) ---
Processes found (2 total):
⚠️ HIGH LOAD: python app.py CPU:75%
✓ Normal: nginx CPU:2%
=== Container CPU Usage Summary (Sorted by Total all processes CPU) ===
Container Name Container ID Total CPU Top 3 Processes
--------------- ------------- --------- ---------------
web-app 3f9a1b2c3d4e 77% 75% python app.py...
CPU 性能基准测试工具,通过 7 项典型负载评估主机的计算能力,适合对比不同机器或验证虚拟化 / 容器的 CPU 配额效果。
| 测试项 | 负载类型 |
|---|---|
| 单线程计算 | 莱布尼茨级数计算 π |
| 多进程计算 | 进程池并行计算 π(进程数取 CPU 核数,上限 16) |
| 多线程计算 | 模拟 I/O 间隔的多线程任务(体现 I/O 型并发能力) |
| 数学运算 | sin / cos / log / sqrt 混合运算 |
| 内存访问 | 大数组随机读写 + 数学计算 |
| 质数生成 | 试除法质数判定 |
| 排序性能 | 随机数组生成 + 排序 |
- Python 3(仅依赖标准库,无需安装第三方包)
python3 cpu_performance_test.py每项测试运行 5 秒,全部跑完约 35 秒。可随时 Ctrl+C 中断。
==================================================
CPU性能测试开始
==================================================
CPU核心数: 8
测试时长: 每项测试5秒
...
测试结果汇总:
==================================================
Single Thread Ops Per Sec: 8,432,105.22
Multi Process Ops Per Sec: 45,230,881.76
...
综合性能得分: 5,841,203.45
注:各项指标单位不同(ops/sec、primes/sec、sorts/sec 等),“综合性能得分”只是各指标的算术平均,仅适合在相同脚本版本下横向对比,不代表绝对性能。