在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

P99是如何計算的

jf_ro2CN3Fa ? 來源:www.kawabangga.com /posts/4284 ? 2023-01-29 15:41 ? 次閱讀

Latency(延遲)是我們在監控線上的組件運行情況的一個非常重要的指標,它可以告訴我們請求在多少時間內完成。監控 Latency 是一個很微妙的事情,比如,假如一分鐘有 1億次請求,你就有了 1億個數字。如何從這些數字中反映出用戶的真實體驗呢?

之前的公司用平均值來反應所有有關延遲的數據,這樣的好處是計算量小,實施簡單。只需要記錄所有請求的一個時間總和,以及請求次數,兩個數字,就可以計算出平均耗時。

但問題是,平均耗時非常容易掩蓋真實的問題。比如現在有 1% 的請求非常慢,但是其余的請求很快,那么這 1% 的請求耗時會被其他的 99% 給拉平,將真正的問題掩蓋。

所以更加科學的一種監控方式是觀察 P99/P95/P90 等,叫做 Quantile。簡單的理解,P99 就是第 99% 個請求所用的耗時。假如 P99 現在是 10ms,那么我們可以說 “99% 的請求都在 10ms 內完成”。雖然在一些請求量較小的情況下,P99 可能受長尾請求的影響。但是由于 SRE 一般不會給在量小的業務上花費太多精力,所以這個問題并不是很大。

但是計算就成了一個問題。P99 是計算時間的分布,所以我們是否要保存下來 1 億個請求的時間,才能知道第 99% 的請求所用的時間呢?

這樣耗費的資源太大了。考慮到監控所需要的數據對準確性的要求并不高。比如說 P99 實際上是 15.7ms 但是計算得到數據是 15.5ms,甚至是 14ms,我認為都是可以接受的。

我們關注更多的是它的變化。“P99 耗時從 10.7ms 上漲到了 14ms” 和 “P99耗時從 11ms 上漲到了 15.5ms” 這個信息對于我們來說區別并不是很大。(當然了,如果是用于衡量服務是否達到了服務等級協議 SLO 的話,還是很大的。這樣需要合理地規劃 Bucket 來提高準確性)。

所以基于這個,Prometheus 采用了一種非常巧妙的數據結構來計算 Quantile: Histogram

Histogram 本質上是一些桶。舉例子說,我們為了計算 P99,可以將所有的請求分成 10 個桶,第一個存放 0-1ms 完成的請求的數量,后面 9 個桶存放的請求耗時上區間分別是 5ms、10ms、50ms、100ms、200ms、300ms、500ms、1s、2s,這樣只要保存 10 個數字就可以了。

要計算 P99 的話,只需要知道第 99% 個數字落在了哪一個桶,比如說落在了 300ms-500ms 的桶,那我們就可以說現在的 99% 的請求都在 500ms 之內完成(這樣說不太準確,如果準確的說,應該是第 99% 個請求在 300ms – 500ms 之間完成)。這些數據也可以用來計算 P90、P95 等等。

由于我們的監控一般是繪制一條曲線,而不是一個區間。所以 P99 在 300-500 之間是不行的,需要計算出一個數字來。

Prometheus 是假設每一個桶內的數據都是線性分布的,比如說現在 300-500 的桶里面一共有 100 個請求,小于300個桶里面一共有 9850 個請求。所有的桶一共有 1萬個請求。

那么我們要找的 P99 其實是第 10000 * 0.99 = 9900 個請求。第 9900 個請求在 300-500 的桶里面是第 9900 – 9850 = 50 個請求。根據桶里面都是線性分布的假設,第 50 個請求在這個桶里面的耗時是 (500 – 300) * (50/100) = 400ms,即 P99 就是 400ms。

可以注意到因為是基于線性分布的假設,不是準確的數據。比如假設 300-500 的桶中耗時最高的請求也只有 310ms,得到的計算結果也會是 400ms。桶的區間越大,越不準確,桶的區間越小,越準確。

寫這篇文章,是因為昨天同事跑來問我,“為啥我的日志顯示最慢的請求也才 1s 多,但是這個 P999 latency 顯示是 3s?”

我查了一下確實如他所說,但是這個結果確實預期的。因為我們設置的桶的分布是:10ms、50ms、100ms、500ms、1s、5s、10s、60s。

如上所說,Prometheus 只能保證 P999 latency 落在了 1s – 5s 之間,但不能保證誤差。

如果要計算準確的 Quantile,可以使用 Summary 計算。簡單來說,這個算法沒有分桶,是直接在機器上計算準確的 P99 的值,然后保存 P99 這個數字。但問題一個是在機器本地計算,而不是在 Prometheus 機器上計算,會占用業務機器的資源;另一個是無法聚合,如果我們有很多實例,知道每一個實例的 P99 是沒有什么意義的,我們更想知道所有請求的 P99。顯然,原始的信息已經丟失,這個 P99 per instance 是無法支持繼續計算的。

另外一個設計巧妙的地方是,300-500 這個桶保存的并不是 300-500 耗時的請求數,而是 <500ms 的請求數。也就是說,后面的桶的請求數總是包含了它前面的所有的桶。這樣的好處是,雖然我們保存的數據沒有增加(還是10個數字),但是保存的信息增加了。假如說中間丟棄一個桶,依然能夠計算出來 P99,在某些情況下非常有用,比如監控資源不夠了,我們可以臨時不收集前5個桶,依然可以計算 P99。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 監控
    +關注

    關注

    6

    文章

    2216

    瀏覽量

    55254

原文標題:P99 是如何計算的?

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    將信號引入DS99R104 ,DS99R104沒有輸出反應,為什么?

    第一次使用這個轉換芯片,103端時鐘信號都輸進去了,DOUT端也可以測量到信號輸出,但是怎么判斷信號輸出的正確呢?我將信號引入DS99R104 ,DS99R104沒有輸出反應,求專家或用過的這類芯片的大神解答!!
    發表于 12-20 08:31

    CBM99D57BQ

    CBM99D57 可在多種高端通信系統中實現I/Q 調制器和上變頻器功能。CBM99D57 內部集成了高速直接數字頻率合成器(DDS)、高速 14 位數模轉換器(DAC)、時鐘倍頻電路、數字濾波器
    發表于 12-13 15:05 ?0次下載

    刀片計算機設計方案:192-6U VPX i7 刀片計算

    6U VPX , 6U VPX , KU5P計算板 , VPX刀片式計算機 , 刀片計算機 , 無線電通信
    的頭像 發表于 11-29 15:13 ?201次閱讀
    刀片<b class='flag-5'>計算</b>機設計方案:192-6U VPX i7 刀片<b class='flag-5'>計算</b>機

    如何計算感性負載的功率因數?

    的方法: 首先,我們需要了解功率因數的定義。功率因數(PF)是一個無單位的數值,表示電壓和電流之間的相位差。它是有功功率(P)與視在功率(S)之比,即PF = P/S。 計算有功功率(P
    發表于 11-13 16:39

    14位,3.3V CMOS直接數字合成器-CBM99D10

    CBM99D10BQ:1G高精度DDS,助力北斗信號接收CBM99D10BQ是一款內置14位DAC的直接數字頻率合成器(DDS),支持高達1GSPS采樣速率,可生成400MHz正弦波形。用戶可通過
    的頭像 發表于 11-11 11:42 ?1090次閱讀
    14位,3.3V CMOS直接數字合成器-CBM<b class='flag-5'>99</b>D10

    數控車床m99指令的用法

    X20 F100  N40 M99  在這個例子中,M20指令用于設置循環次數為10,P參數表示循環次數的值。當程序執行到M99指令時,數控系統會自動檢查M20指令設置的循環次數,并根據循環次數進行
    的頭像 發表于 10-23 15:52 ?785次閱讀

    XCVU9P 板卡設計原理圖:616-基于6U VPX XCVU9P+XCZU7EV的雙FMC信號處理板卡 高性能數字計算

    光纖加速計算 , 基帶信號處理 , 高性能數字計算卡 , 高速圖像處理卡 , XCVU9P
    的頭像 發表于 10-21 15:46 ?413次閱讀
    XCVU9<b class='flag-5'>P</b> 板卡設計原理圖:616-基于6U VPX XCVU9<b class='flag-5'>P</b>+XCZU7EV的雙FMC信號處理板卡 高性能數字<b class='flag-5'>計算</b>卡

    CBM24AD99Q數據手冊-中文版

    CBM24AD99Q芯片是低噪聲24 位同步采樣Δ-Σ模數轉換器(ADC),具有內置可編程增益放大器(PGA)、內部電壓基準和內部振蕩器。CBM24AD99Q包含顱外腦電圖(EEG)和心電圖(ECG
    發表于 10-16 13:39 ?0次下載

    智能加速計算卡設計原理圖:628-基于VU3P的雙路100G光纖加速計算卡 XCVU3P板卡

    DA 信號處理板卡 , PCIe 光纖加速計算卡 , XCVU3P板卡 , 高速視頻采集卡 , 信號輸出驗證,?PCIe 光纖加速計算卡?,?XCVU3P板卡?,?光纖加速
    的頭像 發表于 08-01 11:03 ?344次閱讀
    智能加速<b class='flag-5'>計算</b>卡設計原理圖:628-基于VU3<b class='flag-5'>P</b>的雙路100G光纖加速<b class='flag-5'>計算</b>卡 XCVU3<b class='flag-5'>P</b>板卡

    DS99R101/DS99R102 3-40MHz DC平衡24位LVDS串行器和解串器數據表

    電子發燒友網站提供《DS99R101/DS99R102 3-40MHz DC平衡24位LVDS串行器和解串器數據表.pdf》資料免費下載
    發表于 07-09 09:39 ?0次下載
    DS<b class='flag-5'>99</b>R101/DS<b class='flag-5'>99</b>R102 3-40MHz DC平衡24位LVDS串行器和解串器數據表

    數控車床m99指令的用法

    數控車床是一種高度自動化的機床,廣泛應用于機械加工領域。在數控車床的編程中,M代碼(輔助功能代碼)起著非常重要的作用。M99指令是數控車床編程中的一種輔助功能代碼,用于實現程序的循環調用。下面我們將
    的頭像 發表于 06-14 15:52 ?4896次閱讀

    cnc怎么編程m99循環次數

    CNC(計算機數控)編程是一種用于控制機床自動加工零件的技術。M99是一個在數控程序中用于結束循環的指令。 引言 CNC編程是一種廣泛應用于制造業的技術,它允許機床按照預設的程序自動加工零件。CNC
    的頭像 發表于 06-14 15:49 ?2481次閱讀

    樂鑫ESP32-P4芯片應用,WT99P4C6-S1開發板應用方案

    的ESP32-P4芯片,為智能設備開發帶來了新的突破。ESP32-P4:性能飛躍,功能全面ESP32-P4芯片繼承了ESP32系列的優良傳統,并在此基礎上實現了性能的飛躍
    的頭像 發表于 06-01 08:04 ?1729次閱讀
    樂鑫ESP32-<b class='flag-5'>P</b>4芯片應用,WT<b class='flag-5'>99P</b>4C6-S1開發板應用方案

    電能的計算公式 電能的計算公式中時間的單位

    電能是電力消耗的度量,它表示單位時間內消耗的電功率。電能的計算公式為: 電能(E)= 電功率(P)× 時間(t) 其中,電功率可以通過以下公式計算: 電功率(P)= 電壓(U)× 電流
    的頭像 發表于 02-22 10:00 ?1.4w次閱讀

    雙串聯高速開關二極管BAV99QB數據手冊

    電子發燒友網站提供《雙串聯高速開關二極管BAV99QB數據手冊.pdf》資料免費下載
    發表于 02-21 09:59 ?0次下載
    雙串聯高速開關二極管BAV<b class='flag-5'>99</b>QB數據手冊
    主站蜘蛛池模板: 看片地址| 91精品国产91久久久久久青草| 四虎伊人| 色六月丁香| 模特精品视频一区| 久久久噜噜噜久久中文字幕色伊伊| 久久精品女人天堂| 国产三a级日本三级日产三级| 成 人 黄 色视频免费播放| 午夜视频一区| 美女黄色毛片| 深爱五月激情| 国卡一卡二卡三免费网站| 亚洲va久久久噜噜噜久久| 四虎4hu| 欧美一级视频高清片| 国产三级三级三级| 亚洲精品久久久久午夜三| 天堂在线视频| 2018国产精品| 美女视频一区二区三区在线| 亚洲 欧美 日韩 综合| 欧美一级片免费在线观看| 激情综合五月| 天天做天天爱夜夜爽女人爽宅| 久久久午夜| 69日本xxxxxxxxx96| 亚洲香蕉影院| 欧美性爽xxxⅹbbbb| 国产精品主播在线| 奇米影视第四色7777| 黄色大片在线视频| 亚洲狠狠操| 老色皮| 天天干天天上| av72成人| 停停色| 大尺度视频网站久久久久久久久| 日本美女视频网站| 亚洲网站免费看| 四虎国产成人亚洲精品|