- 新增 aio-mcp 项目框架 - 新增 .trae/skills/ OCR/SKU 设计工具 - 更新 auto-check 配置和 stress 包 - 删除 fnhelp 文档目录 - 更新 Docker 压力测试脚本
75 lines
2.3 KiB
Bash
75 lines
2.3 KiB
Bash
#!/bin/bash
|
||
# 压力测试入口脚本(打包在镜像内)
|
||
# auto-check 启动容器时通过环境变量传参,执行完整测试流程:
|
||
# 系统信息 → 温度监控启动 → 各项压测(先单项、后综合)→ 温度监控收尾 → 内核日志
|
||
set -e
|
||
|
||
# 统一 UTF-8 locale:否则 sensors 输出 "+51.0 C"(无 ° 符号),
|
||
# 脚本中 (?=°C) 的温度正则会全部失配,导致温度采集不到
|
||
export LC_ALL=C.UTF-8
|
||
export LANG=C.UTF-8
|
||
|
||
# 默认值(docker -e 传入时覆盖)
|
||
export AUTOCHECK_TYPES="${AUTOCHECK_TYPES:-cpu,memory}"
|
||
export AUTOCHECK_DURATION="${AUTOCHECK_DURATION:-30}"
|
||
export AUTOCHECK_THREADS="${AUTOCHECK_THREADS:-4}"
|
||
export AUTOCHECK_MEM_SIZE_MB="${AUTOCHECK_MEM_SIZE_MB:-0}"
|
||
export AUTOCHECK_DISK_SIZE_MB="${AUTOCHECK_DISK_SIZE_MB:-1024}"
|
||
export AUTOCHECK_TEMP_INTERVAL="${AUTOCHECK_TEMP_INTERVAL:-10}"
|
||
export AUTOCHECK_SAMPLE_INTERVAL="${AUTOCHECK_SAMPLE_INTERVAL:-2}"
|
||
if [ -n "$AUTOCHECK_DISK_DIR" ]; then export AUTOCHECK_DISK_DIR; fi
|
||
|
||
# 1. 系统信息
|
||
source /scripts/sysinfo.sh
|
||
|
||
# 2. 温度监控(后台周期采样)
|
||
source /scripts/temp_start.sh
|
||
|
||
# 未知类型输出 skip,保证报告完整
|
||
for T in $(echo "$AUTOCHECK_TYPES" | tr ',' ' '); do
|
||
case "$T" in
|
||
cpu|memory|disk|memnative|full|fnstable) ;;
|
||
*)
|
||
echo "===TEST:$T==="
|
||
echo "status:skip"
|
||
echo "output:未知测试类型"
|
||
echo ""
|
||
;;
|
||
esac
|
||
done
|
||
|
||
# 3. 稳定性门禁(fnscript 社区脚本先行,不通过则跳过自有压测)
|
||
# fnstable.sh 内部设置 GATE_PASSED(1=通过 / 0=失败)
|
||
GATE_PASSED=1
|
||
REQ_TYPES=",${AUTOCHECK_TYPES// /},"
|
||
case "$REQ_TYPES" in
|
||
*,fnstable,*) source /scripts/fnstable.sh ;;
|
||
esac
|
||
|
||
# 4. 按固定顺序执行请求的自有测试(先单项、综合 full 最后)
|
||
# 门禁未通过 → 硬件已有问题,自有压测全部 skip(报告仍完整输出)
|
||
if [ "$GATE_PASSED" -eq 1 ]; then
|
||
for TYPE in cpu memory disk memnative full; do
|
||
case "$REQ_TYPES" in
|
||
*",$TYPE,"*) source "/scripts/$TYPE.sh" ;;
|
||
esac
|
||
done
|
||
else
|
||
for TYPE in cpu memory disk memnative full; do
|
||
case "$REQ_TYPES" in
|
||
*",$TYPE,"*)
|
||
echo "===TEST:$TYPE==="
|
||
echo "status:skip"
|
||
echo "output:fnscript 稳定性门禁未通过,跳过自有压测"
|
||
echo ""
|
||
;;
|
||
esac
|
||
done
|
||
fi
|
||
|
||
# 5. 温度监控收尾
|
||
source /scripts/temp_end.sh
|
||
|
||
# 6. 内核日志 + 结束标记
|
||
source /scripts/dmesg.sh
|