如何记录一周晚高峰数据?记录模板、采样脚本与续费判断
如何记录一周的机场晚高峰数据?本文提供一套可直接照做的七天记录方案:包含每日记录表和周汇总表两张空白模板、可自动写入CSV的Bash与PowerShell采样脚本、定时运行的设置思路,以及如何计算失败率和延迟中位数、按结果判断续费、观察还是更换机场的参考标准。
简要回答 记录一周晚高峰数据,只需固定2到3个常用节点,在每晚20:00到24:00每30分钟自动采样一次,把成功次数、失败次数和延迟中位数写入CSV,第七天汇总每天的失败率和最差时段。连续多个晚上失败率低、延迟平稳才适合续费或年付。
记录一周晚高峰数据,只需要三步:固定 2–3 个常用节点,在每晚 20:00–24:00 每 30 分钟自动采样一次,把成功次数、失败次数和延迟中位数写入 CSV;第七天汇总每天的失败率和最差时段。连续多个晚上失败率低、延迟平稳,才适合续费或改成年付。采样指标的含义和测试条件,可以先看 晚高峰测速方法,本文重点讲“一周怎么记、怎么汇总、怎么决策”。
准备工作
- 固定节点:选你最常用的 2–3 个节点,一周内不更换;
- 固定环境:同一台设备、同一个网络、同一个客户端,关闭自动切换节点;
- 确认端口:在客户端设置中查看 HTTP 或混合代理端口,下文以
7897为例; - 准备目录:新建一个文件夹存放脚本和 CSV 文件。
采样脚本
macOS / Linux(Bash)
脚本每次运行对当前节点请求 20 次,统计成功、失败和延迟中位数,追加一行到 peak-log.csv:
#!/usr/bin/env bash
# 用法:bash peak-log.sh 节点名称
NODE="${1:-node-1}"
PROXY="http://127.0.0.1:7897"
URL="https://www.gstatic.com/generate_204"
OUT="$(dirname "$0")/peak-log.csv"
[ -f "$OUT" ] || echo "time,node,ok,fail,median_ms" > "$OUT"
ok=0; fail=0; : > /tmp/peak-times.txt
for i in $(seq 1 20); do
r=$(curl -x "$PROXY" -o /dev/null -s -m 10 -w "%{http_code} %{time_total}" "$URL")
if [ "${r%% *}" = "204" ]; then
ok=$((ok+1))
awk -v s="${r##* }" 'BEGIN{printf "%d\n", s*1000}' >> /tmp/peak-times.txt
else
fail=$((fail+1))
fi
sleep 3
done
if [ "$ok" -gt 0 ]; then
median=$(sort -n /tmp/peak-times.txt | awk '{a[NR]=$1} END{print a[int((NR+1)/2)]}')
else
median="NA"
fi
echo "$(date '+%F %H:%M'),$NODE,$ok,$fail,$median" >> "$OUT"
定时运行可以用 cron,下面这行表示每晚 20:00–23:30 每 30 分钟运行一次(路径改成你自己的):
*/30 20-23 * * * bash /path/to/peak-log.sh node-1
Windows(PowerShell)
# 用法:powershell -File peak-log.ps1 -Node node-1
param([string]$Node = "node-1")
$Proxy = "http://127.0.0.1:7897"
$Url = "https://www.gstatic.com/generate_204"
$Out = Join-Path $PSScriptRoot "peak-log.csv"
if (-not (Test-Path $Out)) { "time,node,ok,fail,median_ms" | Out-File $Out -Encoding utf8 }
$ok = 0; $fail = 0; $times = @()
foreach ($i in 1..20) {
$r = curl.exe -x $Proxy -o NUL -s -m 10 -w "%{http_code} %{time_total}" $Url
$code, $sec = $r -split ' '
if ($code -eq '204') { $ok++; $times += [int]([double]$sec * 1000) } else { $fail++ }
Start-Sleep -Seconds 3
}
$sorted = @($times | Sort-Object)
$median = if ($sorted.Count -gt 0) { $sorted[[math]::Floor(($sorted.Count - 1) / 2)] } else { "NA" }
"$(Get-Date -Format 'yyyy-MM-dd HH:mm'),$Node,$ok,$fail,$median" | Out-File $Out -Append -Encoding utf8
定时运行可以使用系统自带的“任务计划程序”,新建任务,触发器设为每天 20:00 开始、每 30 分钟重复、持续 4 小时,操作填写运行上面的脚本。具体界面以当前系统版本为准。
空白记录表
每日记录表
脚本会自动生成 CSV;如果你更习惯手动记录,或想补充主观感受,可以用这张表:
| 日期 | 时间 | 节点 | 成功 / 20 | 失败 / 20 | 延迟中位数 | AI 是否正常 | 视频是否流畅 | 备注 |
|---|---|---|---|---|---|---|---|---|
| 20:00 | ||||||||
| 21:00 | ||||||||
| 22:00 | ||||||||
| 23:00 |
周汇总表
| 日期 | 节点 | 失败率 | 延迟中位数的中位数 | 最差时段 | 缺失轮次 | 主观评价 |
|---|---|---|---|---|---|---|
| 周一 | ||||||
| 周二 | ||||||
| 周三 | ||||||
| 周四 | ||||||
| 周五 | ||||||
| 周六 | ||||||
| 周日 |
怎么汇总
- 算每天的失败率:当天所有轮次的失败次数之和 ÷ 请求总数;
- 算延迟代表值:取当天各轮延迟中位数的中位数,避免单次异常拉偏结果;
- 找最差时段:看哪个时间点的失败最多、延迟最高,是否每天都在同一时段;
- 剔除异常:本地断网、电脑休眠导致的缺失轮次单独标注,不计入失败。
CSV 可以直接用表格软件打开,用筛选和求和功能完成上面的计算。
如何判断是否续费
| 一周表现 | 建议 |
|---|---|
| 大多数晚上失败率接近 0,延迟平稳,AI 与视频正常 | 可以续费,考虑较长周期 |
| 偶有一两个晚上某时段失败集中,其余正常 | 继续月付观察,换同地区其他节点对比 |
| 多个晚上在同一时段持续失败或延迟飙升 | 不建议续费,考虑更换线路类型 |
| 所有节点同时大面积失败、客服无回应 | 停止续费,警惕服务商停止运营 |
如果记录中发现某些时段集中卡顿,可以对照 晚高峰为什么会卡 分析是哪一段出了问题;出现大面积失败、客服失联等情况,请参考 机场跑路前兆。
常见问题
为什么要记录一整周,而不是测一两天?
工作日和周末的拥堵程度不同,个别晚上还可能遇到临时故障。一周的数据能覆盖这些波动,结论更可靠,也更适合作为是否续费的依据。
采样脚本会消耗很多流量吗?
不会。脚本请求的是返回空内容的轻量地址,每轮20次请求消耗的流量很少,一周下来几乎可以忽略。
电脑晚上关机了怎么办?
关机期间的数据会缺失,汇总时标注为缺失,不要当成失败。也可以把脚本放在常开的设备上运行,只要它和你平时使用的网络一致即可。
失败率多少算不合格?
没有统一标准。可以参考本文的判断表,并结合你的使用感受:如果某个时段连续几天都集中失败,而这个时段正好是你最常用的时间,就值得认真考虑更换。