QQ餐廳與系統性能模型


本文最新版已更新至:http://thinkinside.tk/2012/10/23/whats_performance.html

如果你在玩QQ餐廳的時候被老板抓到,可以理直氣壯的說:“我在研究系統性能模型”。具體理由聽我慢慢道來…

1 QQ餐廳”系統“

QQ餐廳是一個 系統 。 其中廚師是 CPU ,服務員是 內存 ,桌椅板凳是 磁盤IO ,這些統稱為系統的 資源 。 這個系統中只運行一個 應用 ,該應用只提供一個 服務 :就餐服務。顯然,系統的所有資源都會用於這個服務。 QQ餐廳當然會有很多客人,稱之為 並發用戶數 ,或者叫 負載

開始的時候客人不多,桌椅板凳或廚師、服務員都可能空閑,叫做 資源閑置 ,已經使用的資源比例叫做 資源利用率

隨着資源和人的增加,資源利用率也會逐漸增長,並最終達到100%。此時餐廳已經”全速運轉“,這是的並發用戶數叫做 最佳並發數 , 所謂”最佳“是指資源已經充分利用,並且每個請求沒有額外的等待。

如果某些資源不足,就會發生該資源的利用率已經達到100%,但是其他資源仍有空閑的情況。此時該項資源成為 性能瓶頸 。為避免性能瓶頸,最理想的情況是使得所有資源的利用率同時達到100%,此時各種資源的比例叫做 最佳資源配比 。 QQ餐廳玩家很重要的一項任務就是在餐廳的不斷擴建過程中,始終維持各資源的最佳配比。

當客人的數量超過”最佳並發數“時,就會產生額外的等待。也就是說, 等待時間 會隨着並發用戶數的增加而增長。而從客人的角度來說,等待時間+供餐所需的固有時間(服務員點菜、傳菜、結賬和廚師做菜等需要的,不可減少的時間)= 響應時間 ,所以等待時間的延長會導致響應時間的延長。而客人的耐心是有限的,如果響應時間過長,客人就會憤然離去,這叫做 響應超時

由於響應超時會導致客人的離去,我們應該區分滿意離開的客人和因為超時而離開的客人。我們把餐廳在單位時間接待的客人叫做 吞吐量 ,並發用戶數-吞吐量=超時的請求。不發生超時情況下的最大並發用戶數成為 最大並發數 。 此時系統的吞吐量達到最大。

2 系統性能指標

在QQ餐廳中,涉及到了很多系統性能指標,讓我們來回顧一下:

  • 系統,應用,服務
  • 資源: CPU、內存、磁盤IO等
  • 負載,並發用戶數
  • 資源利用率、性能瓶頸、資源閑置
  • 最佳並發數,最佳資源配比
  • 等待時間、響應時間與響應超時
  • 吞吐量、最大並發數

當然,由於QQ餐廳的模型比較簡單,有一些性能指標沒有體現出來:

  • 用戶響應時間和系統響應時間

前面的響應時間是從餐廳(系統)角度考慮的,如果從客人(用戶)角度考慮,可能還需要加上從家到餐廳以及從餐廳返回到家的時間。

  • 吞吐量的計量

前面把餐廳在單位時間接待的客人數量作為吞吐量,這是因為QQ餐廳進行了簡化,假設每位顧客只點一種套餐(一道菜+一份飲料)並且只點一次。更復雜 的情況是根據粒度的不同,分別用每秒完成菜品的數量(流量)、完成點餐的數量(請求)、用餐次數(事務)作為吞吐量的計量,根據需要選擇一個或者多個指 標。

3 小結

綜上所述,QQ餐廳是一個系統,玩QQ餐廳就是考慮如何優化系統的性能。 而需要分析系統的哪些性能指標、如何分析決定能否對系統性能進行有效的優化。 這些內容可以繼續圍觀《QQ餐廳與系統性能模型(續):如何評價系統的性能》,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM