關於pv ip uv 計算


每個老板或客戶都會問架構師這個問題. 你設計的網站能承受多大的日訪問量. 程序員都會拍胸脯說出一個心理最大數字.說的時候很有信心.其實這個數字大多是猜的.作為一個理性的程序員怎么能用猜呢? 這里就介紹如何計算網站能承受的最高日訪問數.

 

一. 我們得先做測試確認基本數據.

多數情況只計算網站日最大訪問pv數,而不是ip或uv(用戶訪問次數).因為對大多數網站來說,相同pv下無論多少IP造成的訪問壓力是一樣的.

造成服務器壓力的訪問多是對動態頁面的請求,因為這些頁面需要讀寫數據庫或做更復雜的即時計算.我們的先做實驗確定網站動態頁面每秒訪問成功響應數和每個 請求響應時長. 對於網站來說,多數情況響應時長最多不能超過0.6s.否則用戶會感到很慢.理想的情況是0.3s以內. 這個結果可以在網站開發完成后用測試工具獲得. 例如我用jmeter工具測試我筆記本上的網站得出如下結果:

 

上圖表明此網站部署. 每秒響應241.7個請求,每個請求平均響應時間為0.081s, 超過90的響應大於0.121s, 其中最長的響應請求時長為0.701s. 我們就以此值為最大測試結果來計算整天此網站能承受的訪問PV

二. 計算方法和計算緣由.

根據以上測試結果得知每秒的合理請求相應數約241.7個. 由於每日小時訪問數並不均衡,所以我們需要知道每日24小時的每小時流量占日總流量比例和小時最高訪問壓力. 假設通過其他的類似站點日流量統計得知,此類站點訪問壓力最大的時間是晚上21點.此時訪問流量占了日總PV的33%. 由於統計站點能統計到的最小尺度為小時,而我們的本地測試尺度是秒. 很顯然一個小時內每秒的流量也是不均衡的. 所以我們這里要估計晚上21點中最大訪問秒的請求數.按照經驗可以估計為 “小時pv/3600秒*3″ 也就是把21點的請求按平均分配到每秒.並且把三倍每秒請求作為日最高的秒請求數. 注意不同的站點這個常量是不一樣的. 具體要根據實際業務估算(有些 網站例如定時發售什么的這么計算就明顯不合適). 對於大部分企業站點來說常量3是可行的.

好了,現在我們知道了本地測試的每秒最大訪問,也知道了高烽小時占日訪問百分比,也知道了高峰秒的估算值.要計算日最大訪問就很容易了.以上估算為例, 日最大訪問:

PV = 241.7 ÷ 3 × 3600 ÷ 0.33 ≈ 878909

日最大可承受87.9萬pv. 按多數情況的每Ip訪問7-10頁計算,日可承受IP:10萬左右.

三. 可能的意外和需要注意的事項.

  1. 在真實網站項目中 存在多個動態網頁. 在本地壓力測試時,需要模仿真實訪問比例測試多個動態頁並且合計出每秒最大壓力pv結果,此結果取值於最慢的動態頁(千萬注意不是取平均值). 模擬真實 動態頁面訪問比例測試以盡可能做到准確. 在這里要多參考已有同類型站點的頁面訪問統計結果.
  2. 網站中往往還存在img,js,css等等其他文件訪問,這個也會拖慢服務器響應.做模擬測試時要考慮進去.當然還要考慮帶寬問題(對於多數動態頁面來說帶寬不是瓶頸).
  3. 日最高峰小時的秒高峰倍率估算,不同類型的網站根據其業務不同有變化,有兩個辦法可以解決,一靠長期的觀察估算倍率. 二是最好給測試結果留更多的余量以應付突發訪問壓力增大的情況.畢竟這個計算測試值是理論極限,超過此極限性能會急劇下降.
  4. 對於動態頁面來說,一但某個請求程序出錯會極大延長響應時間,做壓力估算時也要為此留出余量.
  5. 其實在一年中不同的日訪問流量也是不同的,節假日流量甚至可以達到平日的兩倍或更多.為了網站訪問穩定,最好以年最大日訪問並且預留30%壓力.
      轉載:https://blog.csdn.net/php_lina/article/details/66970194


免責聲明!

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



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