系統效能預估

2021-10-06 08:19:18 字數 2010 閱讀 8959

在做乙個系統前,首先要思考,這個系統將來有多少人用,最高併發有多少。使用者規模和併發的不同,會決定系統架構的不同。架構決定成本,包括開發和執行成本,不要一味的追求高效能,適用最好。

併發使用者數和併發數常常混用,但是實際上,一般表達的是併發使用者數的意思。(產品所說的系統併發表示併發使用者數)

併發數和qps常常混用,但是實際上,一般表達的是qps的意思。(研發所說的系統併發表示qps)

真正的系統併發取決於硬體,不會隨意變化,沒有討論意義。

如何知道系統的qps?

壓測估算:響應時間取倒數

假設我們當前乙個http請求伺服器處理完成需要100ms(即平均響應時間 = 100ms )。那麼它1s鐘可以處理10個請求,也就是 qps = 10。

人們常常將兩者混用,在不特殊強調的情況下,可以粗略的認為兩者是等價的,通用的。

但是實際上,至少從字面意思上,兩者的含義是不同的

可以看出qps一般沒有歧義,問題主要在於如何解釋tps定義中的「事務」。所以建議統一使用qps,除非qps特別不符合語境時再使用tps。

(2)對於一天當中使用者登入時間不長,且分布比較均勻的系統來說

舉例1:

假設系統a,該系統有3000個使用者,平均每天大概有400個使用者要訪問該系統,對於乙個典型使用者來說,一天之內使用者從登陸到退出的平均時間為4小時,而在一天之內,使用者只有在8小時之內會使用該系統。

–平均併發使用者數 = 400*4/8 = 200

最大併發使用者數 = 200 + 3*根號200 = 243

舉例2:

某公司為其170000名員工設計了乙個薪酬系統,員工可進入該系統查詢自己的薪酬資訊,但並不是每個人都會用這個系統,假設只有50%的人會定期用改系統,這些人裡面有70%是在每個月的最後一周使用一次該系統,且平均使用系統時間為5分鐘。該公司朝九晚五,每天工作8小時。

–最後一周的使用系統的使用者數 = 170000*0.5*0.7 = 59500

最後一周的平均每天使用系統的使用者數(一周5個工作日) = 59500/5 = 11900

最後一周的平均每天使用者使用系統的分鐘數(平均使用系統時間為5分鐘) = 11900*5 = 59500

最後一周的每天平均併發使用者數(一天8個工時) = 59500/(8*60) = 124

最後一周的每天最大併發使用者數 = 124 + 3*根號124 = 138

(3)對於一天當中使用者請求比較集中的系統來說,適合直接估算qps,再估算最大併發使用者數

最大qps = 一天的使用者請求數*80% / 使用者集中時間段

最大併發使用者數 = 最大qps * (平均思考時間+平均響應時間)

原理:根據2/8原則,認為80%的使用者請求都會在集中的時間段裡完成;通常平均思考時間設為2,平均響應時間設為1

舉例1:

假設乙個**,每天的pv大概1000w,根據2/8原則,我們可以認為這1000w pv的80%是在一天的9個小時內完成的。

–最大qps = 1000w*80%/(9*3600) = 246.92個/s

最大併發使用者數 = 246.92*3 = 740

舉例2:

以乘坐地鐵為例子,每天乘坐人數為5萬人次,每天早高峰是7到9點,晚高峰是6到7點,根據8/2原則,80%的乘客會在高峰期間乘坐地鐵。

–最大qps(每秒到達地鐵檢票口的人數) = 為50000*80%/(3*60*60)=3.7,約4人/s

考慮到安檢,入口關閉等因素,實際堆積在檢票口的人數肯定比這個要大,假定每個人需要3秒(平均思考時間+平均響應時間為3秒)

最大併發使用者數 = 4人/s*3s = 12人

最大併發使用者數 = 最大qps * (平均思考時間+平均響應時間)

通常平均思考時間設為2,平均響應時間設為1

《效能測試中併發使用者數的估算》

優化系統效能

程式框架 hibernate3 struts2 spring2 資料庫 sqlserver2008 伺服器 tomcat6 優化方法 1 配置連線池 採用的c3p0連線池 2 在程式中獲取列表時,用iterator代替list 3 在查詢之後可以使用session.clear 方法釋放快取 4 用資...

系統效能分析

當系統變慢時候,我們首先關注的可能是cpu的指標,有時候發現cpu使用率一點都不高,但是系統還是卡,這時可能就需要關心另外乙個影響效能的東西 磁碟的io效能。通過top命令中的 wa可以獲取系統當前的io狀態,如果該值居高不小,那磁碟的io可能就有問題了。另外可以通過iotop命令來詳細了解什麼程式...

系統效能分析

系統的整體效能取決於各種資源的平衡,類似木桶理論,某種資源的耗盡會嚴重阻礙系統的效能。linux中需要監控的資源主要有 cpu 主存 記憶體 硬碟空間 i o時間 網路時間 應用程式等。統效能的主要因素有 因素 說明使用者態cpu cpu在使用者態執行使用者程式所花費的時間,包括庫呼叫,但是不包括核...