如果單一主機的單一進程內發生錯誤,有多少查詢會失敗?

如果單一主機的單一進程內發生錯誤,有多少查詢會失敗?

情境:

我有一個 H 主機集群,為 API 提供服務,其中每個主機使用 P(恆定)數量的(python,但不相關)進程(非同步,但在其他方面也不相關)為 API 提供服務。

我可以存取以下資訊(如圖所示):

  • 整個叢集上的平均(每秒)查詢接收器數量,R(t)
  • 平均延遲(處理請求所需的時間)L= L(t),它也隨時間變化。
    • 平均值超過幾秒並且跨所有進程/主機
  • 主機數量H(t),由於自動縮放而隨時間變化。

可能會發生錯誤,導致整個進程及其中的所有進程內查詢終止,但其餘進程仍繼續運作。

  • 錯誤率(例如,每台主機每天的 #crashes 數)是已知的且恆定的,例如E

問題:我想計算由於崩潰而導致的(預期?)失敗查詢的數量。

假設:

  • 查詢在主機和進程之間同等平衡。
  • 失敗的進程「立即」恢復

一些想法:

  • 在任何給定的時刻,數量新的查詢應該是R(t) / [P*H(t)].
  • 這沒有考慮尚未完成的“正在運行”的查詢。我想我想以某種方式將其與 L(t) 聯繫起來...
  • 每秒新查詢數的倒數[P*H(t)] / R(t)應該小於L(t),否則意味著完成查詢需要比接收新查詢更多的時間,最終使伺服器超載(這不會發生!)

相關內容