阿克森雲登入 / 註冊English/中文/cn繁體/tw

測量方法論:樣本量、時段、百分位與可復現性

測量口徑的白皮書:樣本量怎麼定、時段怎麼選、百分位怎麼讀、可復現性怎麼保證。與本站測速工具的公開方法論同口徑——任何數字發布前先過這四關,無據數字一律標待實測。

· AxionServe 編輯部 · 工具中心

「我們線路很好」和「P95 延遲 52ms,晚高峯劣化 18%,樣本 30 天 × 3 時段,MTR 存證在檔」——兩句話的信息量差一個時代。測量方法論就是把後一種句子變成行業默認的標準:樣本量、時段、百分位、可復現性四關,任何數字發布前逐關過。本文與本站測速工具的公開方法論同口徑(那套口徑已經受住日常使用檢驗),也是行情頁全部指數的發布紀律。本文屬於測速與診斷中心系列。

測量四關流程示意

第一關:樣本量——多少數據才算數

  • 延遲:≥20 個包看分布(中位數與尾部都有意義的最小量);正式口徑用 6 次 256B 不可緩存探針棄 1 取 5 的中位數(本站測速工具的探針設計:棄首包是因爲它含 TCP/TLS 握手成本,會系統性偏高);
  • 丟包/失敗率:≥100 個樣本——10 個包的「0% 丟包」置信度約等於拋 10 次硬幣沒出反面;
  • 吞吐:≥30 秒窗口 + 丟棄慢啓動段(本站口徑:丟棄前 256KB 後,在最長 8 秒窗口按接收字節/時間計算);
  • 長期趨勢:≥30 天 × 每日多時段——單周數據分不清「規律」與「那周恰好出事」。

第二關:時段——什麼時候測才是真實體驗

網絡質量的時變性強於空間性:同一條線路,凌晨 4 點與晚上 9 點可以是兩個產品。標準三窗口(目標用戶當地時間):空閒 04:00–06:00(基線)/ 工作 10:00–12:00(日常)/ 晚高峯 20:00–23:00(真實體驗)。發布紀律:只報空閒時段數據的對比是不完整對比——「晚高峯劣化幅度」(高峯 P50 ÷ 空閒 P50)是線路質量最有信息量的單一指標,任何選型對照都該帶上它。

第三關:百分位——平均值的謊言與 P50/P95 的誠實

  • P50(中位數):一半樣本比它好——典型體驗;對極端值不敏感,比均值穩健;
  • P95:95% 的樣本比它好——尾部體驗;實時業務(語音/遊戲/交易)的用戶記住的是尾部不是典型;
  • 均值:分布對稱時與 P50 接近,有長尾時被拖高——網絡延遲幾乎總有長尾(偶發擁塞/重傳),所以均值是最常被誤用的統計量;
  • 抖動:本站口徑爲「排序後相鄰樣本差值絕對值的均值」——衡量穩定性而非快慢;P95−P50 的差值是它的粗讀版。
指標回答的問題適用業務
P50典型情況多快網頁、API、批量任務
P95最差 5% 有多糟實時音視頻、遊戲、交易
失敗率多少請求根本沒完成全部(可用性底線)
抖動體驗穩不穩語音、視頻、交互類
晚高峯劣化幅度線路的真實成色選型對比的核心指標

第四關:可復現性——別人能重跑你的數字嗎

  • 口徑公開:探針參數(大小/次數/超時/棄樣規則)、聚合方式(中位數/P95)、時段定義全部寫進發布物——本站測速工具的方法論章節就是範本(頁面公開全文);
  • 環境記錄:測量點(誰的網、什麼接入)、目標點(IP/節點)、時間戳三要素進文件名;
  • 工具邊界聲明:瀏覽器探針發不了 ICMP——「探針失敗率」不是 ping 意義的丟包率(本站工具頁原話);吞吐受本地帶寬封頂——只做橫向對比不做絕對結論。邊界不聲明,數字就會被過度解讀;
  • 原始數據可查:MTR 文本、採樣序列、腳本版本歸檔——「結論 + 原始檔案」雙件套才算完整發布(存證規範見MTR 與 Looking Glass)。

反模式清單:這些「數據」不要信

  • 單次截圖:一張 speedtest 截圖 = 一個樣本點,什麼都證明不了;
  • 無時段標注的對比:A 家凌晨數據 vs B 家晚高峯數據,贏了也是無效勝利;
  • 只有均值的報告:長尾被均值喫掉——問 P95 與失敗率,答不上來的數據不採信;
  • 不可復現的「實測」:不給口徑、不給環境、不給原始檔案的「我們實測很快」,按營銷話術處理;
  • 插值充數:樣本缺口用估算填上還標「實測」——本站行情頁的做法是缺口就置 null 標注待補(R6 紀律),寧缺毋假。

方法論的組織落地:一頁紙口徑卡

把四關濃縮成團隊共用的一頁紙:探針參數(包大小/次數/超時/棄樣)、三時段定義、發布必帶指標(P50/P95/失敗率/劣化幅度)、存證四件套(MTR 雙向/ping 分布/時間戳/影響描述)——新人照着卡片採的數據就能和老數據同表對比。口徑卡的價值在跨時間可比:三個月後回看數據,口徑沒變,趨勢才可信;口徑變了必須顯式聲明並從新口徑重新積累基線。

把方法論裝進你的工具箱

# 最小可復現測量套件(配合 /tools/speedtest-node-list 的節點清單):
# ① 延遲分布(20 包)
ping -c 20 目標IP | tail -2
# ② 失敗率與逐跳(100 包,雙向)
mtr -rwzbc 100 目標IP > mtr-out-$(date +%F-%H%M).txt
# ③ HTTP 分階段(10 次循環取分布)
for i in $(seq 10); do curl -o /dev/null -sw "%{time_namelookup} %{time_connect} %{time_starttransfer} %{time_total}\n" https://目標/; sleep 2; done > http-samples.txt
# ④ 匯總(P50/P95 用 sort+awk 手算)
sort -n http-samples.txt | awk '{a[NR]=$4} END{printf "total P50=%.3fs P95=%.3fs\n", a[int(NR*0.5)+1], a[int(NR*0.95)+1]}'

相關工具:在線測速工具(本方法論的工程實現,32 節點矩陣) · 測速節點清單 · MTR 與 Looking Glass。方法論的應用現場:地區延遲觀察與月度線路摘要;診斷全景回測速與診斷中心。