重点关注(5)重点关注(收起)
需人工关注的条目集中于此(判定异常 / N/A / 未完成),证据可点击。
| 主题组 | 阶段 | 类型 | 内容(原文) | 证据 |
|---|---|---|---|---|
| 实时性 | ||||
| 实时性 | 实时性基线(延迟负载矩阵) | N/A(不适用/未采集) | 全部 9 轮有效(数据与直方图见 /var/lib/test-kit/results/phases/rt-baseline);N/A 16 轮(combo7=N/A(机制不可得: 目标 crash-c-abort.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 crash-c-segv.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 crash-go-nilmap.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 crash-go-panic.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 crash-lua-error.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 crash-lua-overflow.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 crash-py-exc.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 crash-py-mem.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 crash-rust-abort.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 crash-rust-panic.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 crash-sh-exit.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 crash-sh-kill9.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 mock-core.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 mock-healthy.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 mock-signal.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板); combo7=N/A(机制不可得: 目标 mock-trace.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板)) | phases/rt-baseline/verdict |
| 实时性 | 实时性调优(隔离核与中断亲和) | 判定:部分通过 | 通过 3 项,阻塞 2 项(TU-01/03 需引导参数);TU-01=阻塞(取证:need-boot-args);TU-03=阻塞(取证:need-boot-args);TU-02/TU-04/TU-05=通过 | phases/rt-tuning/verdict |
| 可靠性 | ||||
| 可靠性 | 故障注入(panic/看门狗/OOM) | 判定:部分通过 | 用例汇总见 case-results.csv;记录页 case-{A..F,mockcapture}.md | phases/fault-inject/verdict |
| 性能 | ||||
| 性能 | 性能基线(存储/网络/CPU 基准) | 判定:部分通过 | 有数据 15 行 / N/A 2 行(缺失工具或单次性指标,见 perf-notes.md) | phases/perf-baseline/verdict |
| 功能与系统 | ||||
| 功能与系统 | CAN 总线通信 | N/A(不适用/未采集) | bus=N/A(接口 can0 在位但监听窗 30s 内无帧(无帧源,显式跳过)) | phases/can/verdict |
共 5 条;「N/A(不适用/未采集)」表示本轮环境取不到数据(如接口不在位、工具缺失),既不算通过也不算失败。证据列可点击,直连对应原始文件。
实时性(2 项)实时性(收起)
关注「能不能在确定时间内响应」——重点看延迟是否稳定、有没有超阈值尖峰。
实时性基线(延迟负载矩阵)
套件判定:通过 —— 全部 9 轮有效(数据与直方图见 /var/lib/test-kit/results/phases/rt-baseline);
判定结果
全部 9 轮有效(数据与直方图见 /var/lib/test-kit/results/phases/rt-baseline);
N/A 16 轮(combo7=N/A(机制不可得: 目标 crash-c-abort.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 crash-c-segv.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 crash-go-nilmap.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 crash-go-panic.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 crash-lua-error.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 crash-lua-overflow.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 crash-py-exc.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 crash-py-mem.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 crash-rust-abort.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 crash-rust-panic.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 crash-sh-exit.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 crash-sh-kill9.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 mock-core.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 mock-healthy.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 mock-signal.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板);
combo7=N/A(机制不可得: 目标 mock-trace.service 主进程不可得(unit 未运行或 MainPID=0),且该类无内置施压模板))
详情(判定/简介/图表/原始数据)
阶段 id:rt-baseline · 所属主题:实时性
测什么:在空载与加压等不同负载组合下,反复测量实时任务的调度延迟——也就是「本该醒来的时刻」与「真正醒来的时刻」之间的差。
为什么测:控制类系统最怕「该响应时没响应」,延迟的分布与尾部尖峰决定它能不能用于硬实时场景。
怎么看:先看每个组合的 max(最差值),最差值决定上限;再看直方图尾巴长不长,尾巴长说明有偶发卡顿;这里的数值只用于同环境回归对比,真实硬件需上板复测。
maxavgN/A(无数据,不造假值)单位:µs
怎么看:蓝柱=该组合的最大延迟 max,橙柱=平均延迟 avg;max 与 avg 常差 1~2 个数量级,avg 柱可能极矮——柱顶已标数值,判读以数值为准。
延迟分布(组合 1–4 直方图叠加)
横轴=延迟(µs);纵轴=样本计数(对数轴);每线=一个测试对象(被测服务 / 模块)的直方图;缺桶按 0(无样本),不跨缺口连线。点图例可只看单条(#all 恢复全部)。
内核模块与驱动
测了什么:kernel-module——在上述目标活动背景下测系统调度延迟(背景施压)。
横轴=延迟(µs);纵轴=样本计数(对数轴);每线=一个测试对象(被测服务 / 模块)的直方图;缺桶按 0(无样本),不跨缺口连线。点图例可只看单条(#all 恢复全部)。
| 对象 | max(µs) | avg(µs) | 溢出计数(≥400µs) |
|---|---|---|---|
| kernel-module | 1576 | 84.6 | 1603 |
max=各线程最大延迟的最大值;avg=各线程平均延迟的算术平均;溢出计数=≥400µs 样本数(不进直方图)。溢出>0 行以告警底色标注;N/A=未采集或不适用,如实占位不补值。
系统服务
测了什么:cron、ssh、systemd-journald——在上述目标活动背景下测系统调度延迟(背景施压)。
横轴=延迟(µs);纵轴=样本计数(对数轴);每线=一个测试对象(被测服务 / 模块)的直方图;缺桶按 0(无样本),不跨缺口连线。点图例可只看单条(#all 恢复全部)。
| 对象 | max(µs) | avg(µs) | 溢出计数(≥400µs) |
|---|---|---|---|
| cron | 844 | 83.9 | 280 |
| ssh | 1224 | 76.4 | 385 |
| systemd-journald | 894 | 85.5 | 1613 |
max=各线程最大延迟的最大值;avg=各线程平均延迟的算术平均;溢出计数=≥400µs 样本数(不进直方图)。溢出>0 行以告警底色标注;N/A=未采集或不适用,如实占位不补值。
用户自定义服务
测了什么:crash-c-abort、crash-c-segv、crash-go-nilmap、crash-go-panic、crash-lua-error、crash-lua-overflow、crash-py-exc、crash-py-mem、crash-rust-abort、crash-rust-panic、crash-sh-exit、crash-sh-kill9、j34-usersvc、mock-core、mock-healthy、mock-signal、mock-trace——在上述目标活动背景下测系统调度延迟(背景施压)。
横轴=延迟(µs);纵轴=样本计数(对数轴);每线=一个测试对象(被测服务 / 模块)的直方图;缺桶按 0(无样本),不跨缺口连线。点图例可只看单条(#all 恢复全部)。
| 对象 | max(µs) | avg(µs) | 溢出计数(≥400µs) |
|---|---|---|---|
| crash-c-abort | N/A | N/A | N/A |
| crash-c-segv | N/A | N/A | N/A |
| crash-go-nilmap | N/A | N/A | N/A |
| crash-go-panic | N/A | N/A | N/A |
| crash-lua-error | N/A | N/A | N/A |
| crash-lua-overflow | N/A | N/A | N/A |
| crash-py-exc | N/A | N/A | N/A |
| crash-py-mem | N/A | N/A | N/A |
| crash-rust-abort | N/A | N/A | N/A |
| crash-rust-panic | N/A | N/A | N/A |
| crash-sh-exit | N/A | N/A | N/A |
| crash-sh-kill9 | N/A | N/A | N/A |
| j34-usersvc | 751 | 88.8 | 342 |
| mock-core | N/A | N/A | N/A |
| mock-healthy | N/A | N/A | N/A |
| mock-signal | N/A | N/A | N/A |
| mock-trace | N/A | N/A | N/A |
max=各线程最大延迟的最大值;avg=各线程平均延迟的算术平均;溢出计数=≥400µs 样本数(不进直方图)。溢出>0 行以告警底色标注;N/A=未采集或不适用,如实占位不补值。
原始数据文件(31 项,点击打开;图表数据与判定原文均出自此,逐字未改)
- cyclictest-matrix-crash-c-abort.csv
- cyclictest-matrix-crash-c-segv.csv
- cyclictest-matrix-crash-go-nilmap.csv
- cyclictest-matrix-crash-go-panic.csv
- cyclictest-matrix-crash-lua-error.csv
- cyclictest-matrix-crash-lua-overflow.csv
- cyclictest-matrix-crash-py-exc.csv
- cyclictest-matrix-crash-py-mem.csv
- cyclictest-matrix-crash-rust-abort.csv
- cyclictest-matrix-crash-rust-panic.csv
- cyclictest-matrix-crash-sh-exit.csv
- cyclictest-matrix-crash-sh-kill9.csv
- cyclictest-matrix-cron.csv
- cyclictest-matrix.csv
- cyclictest-matrix-j34-usersvc.csv
- cyclictest-matrix-kernel-module.csv
- cyclictest-matrix-mock-core.csv
- cyclictest-matrix-mock-healthy.csv
- cyclictest-matrix-mock-signal.csv
- cyclictest-matrix-mock-trace.csv
- cyclictest-matrix-ssh.csv
- cyclictest-matrix-systemd-journald.csv
- hist-c1-r1.txt
- hist-c2-r1.txt
- hist-c3-r1.txt
- hist-c4-r1.txt
- hist-c5-kernel-module-r1.txt
- hist-c6-cron-r1.txt
- hist-c6-ssh-r1.txt
- hist-c6-systemd-journald-r1.txt
- hist-c7-j34-usersvc-r1.txt
实时性调优(隔离核与中断亲和)
套件判定:部分通过 —— 通过 3 项,阻塞 2 项(TU-01/03 需引导参数);
判定结果
通过 3 项,阻塞 2 项(TU-01/03 需引导参数);
TU-01=阻塞(取证:need-boot-args);
TU-03=阻塞(取证:need-boot-args);
TU-02/TU-04/TU-05=通过
详情(判定/简介/图表/原始数据)
阶段 id:rt-tuning · 所属主题:实时性
测什么:验证隔离 CPU 核、把中断绑到指定核这类调优手段,是否真的把延迟降了下来。
为什么测:隔离与亲和是常用调优手段,是否有效须用前后数据对比验证。
怎么看:对比调优前后相同负载下的 max 与 avg;延迟下降、分布变瘦,说明调优有效。
逐项判定明细
| 调优项 | 判定 | 原因 |
|---|---|---|
| TU-01 | 阻塞 | 取证:need-boot-args |
| TU-03 | 阻塞 | 取证:need-boot-args |
| TU-02 | 通过 | - |
| TU-04 | 通过 | - |
| TU-05 | 通过 | - |
maxavgN/A(无数据,不造假值)单位:µs
怎么看:蓝柱=该组合的最大延迟 max,橙柱=平均延迟 avg;max 与 avg 常差 1~2 个数量级,avg 柱可能极矮——柱顶已标数值,判读以数值为准。
原始数据文件(5 项,点击打开;图表数据与判定原文均出自此,逐字未改)
可靠性(2 项)可靠性(收起)
关注「压力下和异常后扛不扛得住」——重点看是否发生非预期崩溃/重启、能否恢复。
故障注入(panic/看门狗/OOM)
套件判定:部分通过 —— 用例汇总见 case-results.csv;
判定结果
用例汇总见 case-results.csv;记录页 case-{A..F,mockcapture}.md
详情(判定/简介/图表/原始数据)
阶段 id:fault-inject · 所属主题:可靠性
测什么:人为制造内核 panic、看门狗超时、内存耗尽等故障,观察系统是否按预期处置并恢复。
为什么测:故障处置路径平时不会自己触发,只能主动注入来验证「坏了能不能自愈、现场证据留不留得下」。
怎么看:每个用例的判定 = 故障是否按预期触发、系统是否成功恢复、现场证据(pstore/日志)是否保留。
用例汇总表(case-results.csv)
逐行解析 case-results.csv:判定与原文零改动;关键数值为展示层 kv 提取(白名单 rc oops trigger oom fsck files bad panicfiles marker failed uptime),未命中文本照录说明列。
| 用例 | 判定 | 关键数值 | 说明 |
|---|---|---|---|
| 捕获链验证(mock) | 通过 | - | 捕获链验证 c-cpp=通过 python=通过 sh=通过 |
| A · 组合压力 | 通过 | rc=0 oops=0→0 | |
| B · 内存耗尽与OOM | 通过 | trigger=105 oom=0→1 | |
| C · 文件系统一致性 | 通过 | fsck=0 files=60 bad=0 | |
| E · 长稳采样 | 部分通过 | failed=6 | mem:124→123 samples=12 |
| D · panic恢复与留证 | 待续跑 | - | injected,见重启后 kit-run |
| D · panic恢复与留证 | 通过 | panicfiles=2 marker=yes failed=0 | pstore=yes |
压力与资源耗尽
测了什么:A、B——在 CPU 压力与内存耗尽场景下做故障注入,看压力工具与内核的计数/存活是否按预期变化。
| 用例 | 判定 | 关键数值 | 说明 |
|---|---|---|---|
| A · 组合压力 | 通过 | rc=0 oops=0→0 | |
| B · 内存耗尽与OOM | 通过 | trigger=105 oom=0→1 |
文件系统一致性
测了什么:C——在文件系统故障/降级场景下跑 fsck,看登记文件数与不一致数是否按预期、有无降级路径标记。
| 用例 | 判定 | 关键数值 | 说明 |
|---|---|---|---|
| C · 文件系统一致性 | 通过 | fsck=0 files=60 bad=0 |
panic 恢复与留证
测了什么:D——注入内核 panic 后重启续跑,看 pstore 归档、marker 与 panic 记录文件等现场证据是否留存、failed 单元数是否为零。
| 用例 | 判定 | 关键数值 | 说明 |
|---|---|---|---|
| D · panic恢复与留证 | 待续跑 | - | injected,见重启后 kit-run |
| D · panic恢复与留证 | 通过 | panicfiles=2 marker=yes failed=0 | pstore=yes |
长稳采样
测了什么:E——固定轻负载下周期采样,看内存与 load1 的时间序列趋势(横轴=采样序号,非真实时间)。
| 用例 | 判定 | 关键数值 | 说明 |
|---|---|---|---|
| E · 长稳采样 | 部分通过 | failed=6 | mem:124→123 samples=12 |
原始数据文件(8 项,点击打开;图表数据与判定原文均出自此,逐字未改)
服务监控(systemd 单元健康)
套件判定:通过 —— 监控窗口完成:samples=340 csv行=34 net行=51 can行=34 gap_max=8s
判定结果
监控窗口完成:samples=340 csv行=34 net行=51 can行=34 gap_max=8s
详情(判定/简介/图表/原始数据)
阶段 id:monitor · 所属主题:可靠性
测什么:持续观察被测服务(systemd unit)是否存活、有没有反复重启、内存与错误日志有没有异常。
为什么测:服务偶发崩溃或悄悄重启最难发现,需要跨一个时间窗口连续采样才能抓到。
怎么看:每个服务一条序列;重启次数大于 0 或错误日志在增长就是有情况;横轴是采样序号(原始日志没有时间戳列),看趋势即可,不要当真实时间轴。
监控窗口统计
各项取自判定结论原文(括注为原始键名);gap_max=相邻两次采样的最大时间间隔。
采样点数(samples)=340 CSV行数(csv行)=34 网络统计行数(net行)=51 can行=34 最大采样间隔(gap_max)=8s
驱动计数(ethtool -S)
数据来自监控窗口的 net-ethtool.csv(ethtool -S 驱动计数器窗口聚合;长表一行=接口×计数名;增量=末值−首值;驱动计数器语义随驱动各异,值不换算)。逐轮采样原文见 log-dir 的 net-ethtool.txt X| 行;下表按接口、计数名排序。
| 阶段 | 接口 | 计数名 | 首值 | 末值 | 增量 |
|---|---|---|---|---|---|
| monitor | eth0 | rx_queue_0_bytes | 11774 | 12442 | 668 |
| monitor | eth0 | rx_queue_0_drops | 0 | 0 | 0 |
| monitor | eth0 | rx_queue_0_kicks | 1 | 1 | 0 |
| monitor | eth0 | rx_queue_0_packets | 121 | 129 | 8 |
| monitor | eth0 | rx_queue_0_xdp_drops | 0 | 0 | 0 |
| monitor | eth0 | rx_queue_0_xdp_packets | 0 | 0 | 0 |
| monitor | eth0 | rx_queue_0_xdp_redirects | 0 | 0 | 0 |
| monitor | eth0 | rx_queue_0_xdp_tx | 0 | 0 | 0 |
| monitor | eth0 | tx_queue_0_bytes | 10928 | 11552 | 624 |
| monitor | eth0 | tx_queue_0_kicks | 127 | 135 | 8 |
| monitor | eth0 | tx_queue_0_packets | 127 | 135 | 8 |
| monitor | eth0 | tx_queue_0_xdp_tx | 0 | 0 | 0 |
| monitor | eth0 | tx_queue_0_xdp_tx_drops | 0 | 0 | 0 |
怎么看:纵轴=次数(重启次数、错误日志条数);横轴为采样序号(原始日志无时间戳列),非真实时间轴;同量纲序列同图、线尾已标系列名;缺口/N/A 断线,不伪造连续采样。
N/A 灰显/断点:该单元该项无数值(未采集或不适用),不造假值、不连线。
怎么看:纵轴=内存占用(KB);横轴为采样序号(原始日志无时间戳列),非真实时间轴;同量纲序列同图、线尾已标系列名;缺口/N/A 断线,不伪造连续采样。
N/A 灰显/断点:该单元该项无数值(未采集或不适用),不造假值、不连线。
怎么看:纵轴=内存变化速率(KB/小时);横轴为采样序号(原始日志无时间戳列),非真实时间轴;同量纲序列同图、线尾已标系列名;缺口/N/A 断线,不伪造连续采样。
原始数据文件(4 项,点击打开;图表数据与判定原文均出自此,逐字未改)
性能(1 项)性能(收起)
关注「跑得多快」——存储/网络/CPU/内存等基准数值,只在同环境内对比才有意义。
性能基线(存储/网络/CPU 基准)
套件判定:部分通过 —— 有数据 15 行 / N/A 2 行(缺失工具或单次性指标,见 perf-notes.md)
判定结果
有数据 15 行 / N/A 2 行(缺失工具或单次性指标,见 perf-notes.md)
详情(判定/简介/图表/原始数据)
阶段 id:perf-baseline · 所属主题:性能
测什么:用统一工具测量存储、网络、CPU、内存等性能基准值。
为什么测:先记下「这台机器正常时是多少」,以后改动或回归才有对比的锚点。
怎么看:柱子是各用例结果(3 次运行取中位值),散布点是 3 次原始值;同一维度且同一单位才画在同一张图里;这些数值只在本环境内可比,不能推断真实硬件表现。
中位值3 次原始值(散布)N/A(无数据,不造假值)单位:s
横轴=数值(单位 s);纵轴=用例(每项为一次基准测试);蓝柱=3 次运行取的中位值,红点=3 次原始值;灰块=N/A(缺失工具或单次性指标,如实不补值)。同一维度内单位不同会分图显示,避免不同量纲同轴比较。
中位值3 次原始值(散布)N/A(无数据,不造假值)单位:ms
横轴=数值(单位 ms);纵轴=用例(每项为一次基准测试);蓝柱=3 次运行取的中位值,红点=3 次原始值;灰块=N/A(缺失工具或单次性指标,如实不补值)。同一维度内单位不同会分图显示,避免不同量纲同轴比较。
中位值3 次原始值(散布)N/A(无数据,不造假值)单位:kB/s
横轴=数值(单位 kB/s);纵轴=用例(每项为一次基准测试);蓝柱=3 次运行取的中位值,红点=3 次原始值;灰块=N/A(缺失工具或单次性指标,如实不补值)。同一维度内单位不同会分图显示,避免不同量纲同轴比较。
中位值3 次原始值(散布)N/A(无数据,不造假值)单位:signs/s
横轴=数值(单位 signs/s);纵轴=用例(每项为一次基准测试);蓝柱=3 次运行取的中位值,红点=3 次原始值;灰块=N/A(缺失工具或单次性指标,如实不补值)。同一维度内单位不同会分图显示,避免不同量纲同轴比较。
中位值3 次原始值(散布)N/A(无数据,不造假值)单位:MiB/s
横轴=数值(单位 MiB/s);纵轴=用例(每项为一次基准测试);蓝柱=3 次运行取的中位值,红点=3 次原始值;灰块=N/A(缺失工具或单次性指标,如实不补值)。同一维度内单位不同会分图显示,避免不同量纲同轴比较。
中位值3 次原始值(散布)N/A(无数据,不造假值)单位:µs
横轴=数值(单位 µs);纵轴=用例(每项为一次基准测试);蓝柱=3 次运行取的中位值,红点=3 次原始值;灰块=N/A(缺失工具或单次性指标,如实不补值)。同一维度内单位不同会分图显示,避免不同量纲同轴比较。
中位值3 次原始值(散布)N/A(无数据,不造假值)单位:IOPS
横轴=数值(单位 IOPS);纵轴=用例(每项为一次基准测试);蓝柱=3 次运行取的中位值,红点=3 次原始值;灰块=N/A(缺失工具或单次性指标,如实不补值)。同一维度内单位不同会分图显示,避免不同量纲同轴比较。
中位值3 次原始值(散布)N/A(无数据,不造假值)单位:KiB/s
横轴=数值(单位 KiB/s);纵轴=用例(每项为一次基准测试);蓝柱=3 次运行取的中位值,红点=3 次原始值;灰块=N/A(缺失工具或单次性指标,如实不补值)。同一维度内单位不同会分图显示,避免不同量纲同轴比较。
中位值3 次原始值(散布)N/A(无数据,不造假值)单位:Gbits/s
横轴=数值(单位 Gbits/s);纵轴=用例(每项为一次基准测试);蓝柱=3 次运行取的中位值,红点=3 次原始值;灰块=N/A(缺失工具或单次性指标,如实不补值)。同一维度内单位不同会分图显示,避免不同量纲同轴比较。
中位值3 次原始值(散布)N/A(无数据,不造假值)单位:ms
横轴=数值(单位 ms);纵轴=用例(每项为一次基准测试);蓝柱=3 次运行取的中位值,红点=3 次原始值;灰块=N/A(缺失工具或单次性指标,如实不补值)。同一维度内单位不同会分图显示,避免不同量纲同轴比较。
中位值3 次原始值(散布)N/A(无数据,不造假值)单位:ms
横轴=数值(单位 ms);纵轴=用例(每项为一次基准测试);蓝柱=3 次运行取的中位值,红点=3 次原始值;灰块=N/A(缺失工具或单次性指标,如实不补值)。同一维度内单位不同会分图显示,避免不同量纲同轴比较。
原始数据文件(2 项,点击打开;图表数据与判定原文均出自此,逐字未改)
功能与系统(2 项)功能与系统(收起)
关注「基础功能是否在位可用」——系统服务、总线、启动链等是否正常工作。
CAN 总线通信
套件判定:N/A —— bus=N/A(接口 can0 在位但监听窗 30s 内无帧(无帧源,显式跳过))
判定结果
bus=N/A(接口 can0 在位但监听窗 30s 内无帧(无帧源,显式跳过))
详情(判定/简介/图表/原始数据)
阶段 id:can · 所属主题:功能与系统
测什么:验证 CAN 接口是否在位、总线通信是否可用,并持续观测接口的负载、错误与状态。
为什么测:CAN 是控制总线的命脉,接口不在位、错误增长必须在测试阶段暴露,不能带到现场。
怎么看:接口监测卡看负载/占用率/错误计数/总线状态(各量为窗口增量);需要真实总线端点的项在没有端点时显示 N/A——N/A 不算失败,只是这项没测到。
接口监测(CAN 接口负载 / 错误 / 状态)
数据来自监控窗口的 can-counters.csv(逐轮采样原文见 log-dir 的 can-samples.txt K| 行);各量为窗口增量(末值-首值),横轴=CAN 接口。
rx帧增量tx帧增量N/A(无数据,不造假值)单位:帧
横轴=CAN 接口;蓝柱=rx 帧增量,橙柱=tx 帧增量;帧率(帧/秒)见下方统计条。
rx字节增量tx字节增量N/A(无数据,不造假值)单位:字节
横轴=CAN 接口;字节增量与帧数增量分图(量纲不同,不同轴比较)。
占用率近似(%)N/A(无数据,不造假值)单位:%
总线占用率近似口径:((rx字节增量+tx字节增量)×8+(rx帧增量+tx帧增量)×128bit)÷比特率÷窗口秒×100——帧开销按固定位数近似,不分标准/扩展帧、未计位填充实际长度与帧间隔,只作量级参考,非实测总线占用;比特率不可得(如 vcan 无 bitrate)时记 N/A。
rx错误增量tx错误增量N/A(无数据,不造假值)单位:计数
横轴=CAN 接口;错误计数取 ip -s link 的 errors 列窗口增量;「错误增量窗口数」=错误计数较上一轮增长的采样轮数(见统计条)。
can0/错误增量窗口数=0 can0/状态翻转次数=0 can0/末次CAN状态=STOPPED can0/链路状态=DOWN can0/比特率=N/A can0/采样数=17 can0/窗口秒=120 vcan0/错误增量窗口数=0 vcan0/状态翻转次数=0 vcan0/末次CAN状态=N/A vcan0/链路状态=UNKNOWN vcan0/比特率=N/A vcan0/采样数=17 vcan0/窗口秒=120
该阶段除判定文件(verdict)外无其它产物文件——判定结论见上
网口统计(流量 / 错误 / 链路状态)
数据来自监控窗口的 net-counters.csv(ip -s link 口径;逐轮采样原文见 log-dir 的 net-samples.txt N| 行);各量为窗口增量(末值-首值),横轴=网口。
rx字节增量tx字节增量N/A(无数据,不造假值)单位:字节
横轴=网口;蓝柱=rx 字节增量,橙柱=tx 字节增量;数值为监控窗口内的增量(末值-首值),不是累计总量。
rx字节每秒tx字节每秒N/A(无数据,不造假值)单位:字节/秒
横轴=网口;速率=字节增量÷窗口秒(整数截断);窗口秒为 0 时记 N/A。链路带宽占比未折算(网口侧无原生速率值)。
rx包增量tx包增量N/A(无数据,不造假值)单位:包
横轴=网口;包数与字节数分图呈现(量纲不同,不同轴比较)。
rx错误增量rx丢弃增量tx错误增量tx丢弃增量N/A(无数据,不造假值)单位:计数
横轴=网口;四项均为计数增量:rx/tx errors 与 rx/tx dropped(ip -s link 口径);全 0 即窗口内无错误与丢包。
can0/rx字节每秒=0 can0/tx字节每秒=0 can0/rx错误增量=0 can0/tx错误增量=0 can0/采样数=17 can0/窗口秒=120 eth0/rx字节每秒=5 eth0/tx字节每秒=5 eth0/rx错误增量=0 eth0/tx错误增量=0 eth0/采样数=17 eth0/窗口秒=120 vcan0/rx字节每秒=16 vcan0/tx字节每秒=16 vcan0/rx错误增量=0 vcan0/tx错误增量=0 vcan0/采样数=17 vcan0/窗口秒=120
链路状态:net-counters.csv(T12 §9.3 的 16 列)不含链路状态列——本卡不臆造状态值,需采集面后续增列后方可呈现(采集侧本轮未改动)。
业务服务业务服务(收起)
被测对象=kit.conf [target:*] 配置的业务服务自身(资源与行为画像),与四个测试主题(测系统行为)正交互补;标准锚点:ISO 26262-6 将「资源使用评估」列为软件单元验证方法——此处为方法学借用(内容合法性锚点),非合规声明。
服务总览(五要素:状态 / 重启 / 内存 / CPU / 错误)
每服务一行,[target:*] 配置驱动;数据=service-monitor.csv 汇总优先,缺行回退引擎 samples.txt S| 行逐采样聚合(峰值/末值);CPU 为 S| 行末采样累计值。N/A=该服务本轮无对应采样数据,如实占位不编数据。
| 服务(unit) | 状态 | 重启数 | 内存 | CPU 累计 | 错误 |
|---|---|---|---|---|---|
| systemd-journald.service journald · system-service · critical | active | 0 | 3.6 MiB | N/A | 0 条 |
| ssh.service ssh · system-service · critical | active | 0 | 3.7 MiB | N/A | 0 条 |
| sandbox-heartbeat.service sandbox-heartbeat · user-service · normal | N/A | N/A | N/A | N/A | N/A |
CPU 口径:systemd UsageCPUUSec 累计值(ns→s),单调递增、非利用率——差分化候 M2(评估文档 §6.1)。重启数=监控窗口内 NRestarts 峰值(service-monitor.csv 口径;S| 行回退取扫描期峰值)。
通用层时序(全部服务同屏可比)
无 monitor 逐采样数据(--log-dir 未提供或无 samples.txt S| 行)——通用层时序图不可用,不臆造曲线。
通用指标矩阵(服务 × 指标,跨语言同口径)
列值 verbatim 取自 service-monitor.csv(task-08 §7 schema);该行缺失时回退 S| 行逐采样聚合并在「数据源」列注明;两者皆缺整行 N/A(无数据服务诚实占位)。
| 服务(unit) | 状态 | 重启数 | 退出原因 | 信号 | oom | 内存峰值KB | 内存趋势KB每时 | CPU 累计(ns) | 错误日志计数 | 采样点数 | 数据源 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| systemd-journald.service | active | 0 | success | N/A | no | 3716 | 26040 | N/A | 0 条 | N/A | 汇总 CSV | |
| ssh.service | active | 0 | success | N/A | no | 3752 | 0 | N/A | 0 条 | N/A | 汇总 CSV | |
| sandbox-heartbeat.service | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | 无数据 |
CPU 累计(ns)=S| 行末采样 UsageCPUUSec 原值(累计口径,非利用率——差分化候 M2);退出原因/信号/oom/unlisted 仅汇总 CSV 持有,无 CSV 时 N/A。
服务 × 测试维度交叉引用
本表只做链接引用、不复制明细(明细唯一处原则,评估文档 §4):各维度判定与明细在其专属卡与原始文件。组合 5/6/7=对该服务背景施压测系统延迟(实时性卡);用例 D=系统级 panic 注入与恢复(全体服务共处一轮,coredump/恢复证据见故障注入卡)。
| 服务(unit) | 实时性(组合 5/6/7 定向施压对象) | 故障注入(用例 D panic 恢复与留证) | 服务监控 |
|---|---|---|---|
| systemd-journald.service | 组合 6(对象 systemd-journald) | 用例 D(系统级) | 监控卡 |
| ssh.service | 组合 6(对象 ssh) | 用例 D(系统级) | 监控卡 |
| sandbox-heartbeat.service | — | 用例 D(系统级) | 监控卡 |
运行时层(按语言字段分组,不横比)
分组依据=kit.conf [target:*] 语言字段(c-cpp/python/lua/sh/rust/go 六字段互斥,E5/E6 校验)——配置填错语言会展示错误专属项。各语言专属指标只在同语言内对比或仅展示,不跨语言折算(评估文档 §2)。
sh(3 项)
服务清单(kit.conf [target:*]):systemd-journald.service、ssh.service、sandbox-heartbeat.service
专属指标(评估文档 §2 运行时层):退出码、子进程计数。
M1 暂无该语言专属采集数据——需业务配合采集(本卡为占位;采集扩展候 M2、语言专属候 M3,评估文档 §5)。
明细唯一处:逐采样原文与汇总 CSV 不复制进页,原文见下(评估文档 §4)。
过程记录(3 项)过程记录(收起)
门禁记录(跑测前的准入检查结论)
门禁 = 跑测前对环境的准入检查;未通过时 kit 会拒绝执行或需人工豁免,此处为拒绝/豁免待定的留痕(原文见链接文件)。
无 gate-*.log——本轮未发生门禁拒绝(kit-run 仅在拒绝/豁免待定时落门禁记录)
断点续跑账本(checkpoint.tsv)
记录每个阶段的执行状态,用于中断后从断点继续——状态为 done 表示已完成,interrupted 表示中断待续。
| 范围(scope) | 标识(id) | 状态(state) |
|---|---|---|
| phase | rt-baseline | done |
| phase | rt-tuning | done |
| phase | monitor | done |
| case | fault-inject:D | done |
| phase | fault-inject | done |
| phase | perf-baseline | done |
| phase | can | done |
原始文件:checkpoint.tsv
预检报告(环境自检明细)
本轮预检日志不在本机(report.md 引用
/var/lib/test-kit/logs/preflight-20260912-175831.log,未随归档重放带来)——不回退链接其它轮日志;完整明细见原测试机 log-dir。