亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1528 | 回復(fù): 0
打印 上一主題 下一主題

web [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-12-22 08:54 |只看該作者 |倒序?yàn)g覽

QPS、PV和需要部署機(jī)器數(shù)量計(jì)算公式


術(shù)語(yǔ)說(shuō)明:
QPS = req/sec = 請(qǐng)求數(shù)/秒

【QPS計(jì)算PV和機(jī)器的方式】

QPS統(tǒng)計(jì)方式 [一般使用 http_load 進(jìn)行統(tǒng)計(jì)]
QPS = 總請(qǐng)求數(shù) / ( 進(jìn)程總數(shù) *   請(qǐng)求時(shí)間 )
QPS: 單個(gè)進(jìn)程每秒請(qǐng)求服務(wù)器的成功次數(shù)

單臺(tái)服務(wù)器每天PV計(jì)算
公式1:每天總PV = QPS * 3600 * 6
公式2:每天總PV = QPS * 3600 * 8

服務(wù)器計(jì)算
服務(wù)器數(shù)量 =   ceil( 每天總PV / 單臺(tái)服務(wù)器每天總PV )

【峰值QPS和機(jī)器計(jì)算公式】

原理:每天80%的訪問(wèn)集中在20%的時(shí)間里,這20%時(shí)間叫做峰值時(shí)間
公式:( 總PV數(shù) * 80% ) / ( 每天秒數(shù) * 20% ) = 峰值時(shí)間每秒請(qǐng)求數(shù)(QPS)
機(jī)器:峰值時(shí)間每秒QPS / 單臺(tái)機(jī)器的QPS   = 需要的機(jī)器

問(wèn):每天300w PV 的在單臺(tái)機(jī)器上,這臺(tái)機(jī)器需要多少Q(mào)PS?
答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)

問(wèn):如果一臺(tái)機(jī)器的QPS是58,需要幾臺(tái)機(jī)器來(lái)支持?
答:139 / 58 = 3


===============================================

web 性能測(cè)試中的幾個(gè)關(guān)鍵指標(biāo):并發(fā)用戶(hù)數(shù),QPS,用戶(hù)平均請(qǐng)求等待時(shí)間

關(guān)于并發(fā)用戶(hù)數(shù)和QPS,自己一直被這兩個(gè)概念糾結(jié),閱讀了一下相關(guān)資料,總結(jié)如下:并發(fā)用戶(hù)數(shù)和QPS兩個(gè)概念沒(méi)有直接關(guān)系,但是如果要說(shuō)QPS時(shí),一 定需要指明是多少并發(fā)用戶(hù)數(shù)下的QPS,否則豪無(wú)意義,因?yàn)閱斡脩?hù)數(shù)的40QPS和20并發(fā)用戶(hù)數(shù)下的40QPS是兩個(gè)不同的概念。前者說(shuō)明該應(yīng)用可以在 一秒內(nèi)串行執(zhí)行40個(gè)請(qǐng)求,而后者說(shuō)明在并發(fā)20個(gè)請(qǐng)求的情況下,一秒內(nèi)該應(yīng)用能處理40個(gè)請(qǐng)求,當(dāng)QPS相同時(shí),越大的并發(fā)用戶(hù)數(shù),代表了網(wǎng)站并發(fā)處理 能力越好。對(duì)于當(dāng)前的web服務(wù)器,其處理單個(gè)用戶(hù)的請(qǐng)求肯定戳戳有余,這個(gè)時(shí)候會(huì)存在資源浪費(fèi)的情況(一方面該服務(wù)器可能有多個(gè)cpu,但是只處理單個(gè) 進(jìn)程,另一方面,在處理一個(gè)進(jìn)程中,有些階段可能是IO階段,這個(gè)時(shí)候會(huì)造成CPU等待,但是有沒(méi)有其他請(qǐng)求進(jìn)程可以被處理)。而當(dāng)并發(fā)數(shù)設(shè)置的過(guò)大時(shí), 每秒鐘都會(huì)有很多請(qǐng)求需要處理,會(huì)造成進(jìn)程(線(xiàn)程)頻繁切換,反正真正用于處理請(qǐng)求的時(shí)間變少,每秒能夠處理的請(qǐng)求數(shù)反而變少,同時(shí)用戶(hù)的請(qǐng)求等待時(shí)間也 會(huì)變大,甚至超過(guò)用戶(hù)的心理底線(xiàn)。所以在最小并發(fā)數(shù)和最大并發(fā)數(shù)之間,一定有一個(gè)最合適的并發(fā)數(shù)值,在并發(fā)數(shù)下,QPS能夠達(dá)到最大。但是,這個(gè)并發(fā)并非 是一個(gè)最佳的并發(fā),因?yàn)楫?dāng)QPS到達(dá)最大時(shí)的并發(fā),可能已經(jīng)造成用戶(hù)的等待時(shí)間變得超過(guò)了其最優(yōu)值,所以對(duì)于一個(gè)系統(tǒng),其最佳的并發(fā)數(shù),一定需要結(jié)合 QPS,用戶(hù)的等待時(shí)間來(lái)綜合確定。


圖1 并發(fā)用戶(hù)數(shù),QPS,用戶(hù)平均等待時(shí)間(響應(yīng)時(shí)間關(guān)系圖)

上面這張圖是應(yīng)用其他人的關(guān)于并發(fā)用戶(hù)數(shù),QPS,用戶(hù)平均等待時(shí)間的一張關(guān)系圖,對(duì)于實(shí)際的系統(tǒng),也應(yīng)該是對(duì)于不同的并發(fā)數(shù),進(jìn)行多次測(cè)試,獲取到這些數(shù)值后,畫(huà)出這樣一張圖出來(lái),以便于分析出系統(tǒng)的最佳并發(fā)用戶(hù)數(shù)。

===============================================

最佳線(xiàn)程數(shù):

性能壓測(cè)的情況下,起初隨著用戶(hù)數(shù)的增加,QPS會(huì)上升,當(dāng)?shù)搅艘欢ǖ拈y值之后,用戶(hù)數(shù)量增加QPS并不會(huì)增加,或者增加不明顯,同時(shí)請(qǐng)求的響應(yīng)時(shí)間卻大幅增加。這個(gè)閥值我們認(rèn)為是最佳線(xiàn)程數(shù)。

 

為什么要找最佳線(xiàn)程數(shù)

1.過(guò)多的線(xiàn)程只會(huì)造成,更多的內(nèi)存開(kāi)銷(xiāo),更多的CPU開(kāi)銷(xiāo),但是對(duì)提升QPS確毫無(wú)幫助

2.找到最佳線(xiàn)程數(shù)后通過(guò)簡(jiǎn)單的設(shè)置,可以讓web系統(tǒng)更加穩(wěn)定,得到最高,最穩(wěn)定的QPS輸出

 

最佳線(xiàn)程數(shù)的獲。

1、通過(guò)用戶(hù)慢慢遞增來(lái)進(jìn)行性能壓測(cè),觀察QPS,響應(yīng)時(shí)間

2、根據(jù)公式計(jì)算:服務(wù)器端最佳線(xiàn)程數(shù)量=((線(xiàn)程等待時(shí)間+線(xiàn)程cpu時(shí)間)/線(xiàn)程cpu時(shí)間) * cpu數(shù)量

3、單用戶(hù)壓測(cè),查看CPU的消耗,然后直接乘以百分比,再進(jìn)行壓測(cè),一般這個(gè)值的附近應(yīng)該就是最佳線(xiàn)程數(shù)量。

 

影響最佳線(xiàn)程數(shù)的主要因素:

1、IO

2CPU

根據(jù)公式:服務(wù)器端最佳線(xiàn)程數(shù)量=((線(xiàn)程等待時(shí)間+線(xiàn)程cpu時(shí)間)/線(xiàn)程cpu時(shí)間) * cpu數(shù)量

一般來(lái)說(shuō)是IOCPU。IO開(kāi)銷(xiāo)較多的應(yīng)用其CPU線(xiàn)程等待時(shí)間會(huì)比較長(zhǎng),所以線(xiàn)程數(shù)量可以開(kāi)的多一些,相反則線(xiàn)程數(shù)量要少一些,其實(shí)有兩種極端,純IO的應(yīng)用,比如proxy,則線(xiàn)程數(shù)量可以開(kāi)到非常大(實(shí)在太大了則需要考慮線(xiàn)程切換的開(kāi)銷(xiāo)),這種應(yīng)用基本上后端(比如這個(gè)proxy是代理搜索的)的QPS能有多少,proxy就有多少。

另一種是耗CPU的計(jì)算,這種情況一般來(lái)講只能開(kāi)到CPU個(gè)數(shù)的線(xiàn)程數(shù)量。但是并不是說(shuō)這種應(yīng)用的QPS就不高,往往這種應(yīng)用的QPS可以很高。

 

QPS和線(xiàn)程數(shù)的關(guān)系

1、在最佳線(xiàn)程數(shù)量之前,QPS和線(xiàn)程是互相遞增的關(guān)系,線(xiàn)程數(shù)量到了最佳線(xiàn)程之后,QPS持平,不在上升,甚至略有下降,同時(shí)相應(yīng)時(shí)間持續(xù)上升。

2、同一個(gè)系統(tǒng)而言,支持的線(xiàn)程數(shù)越多(最佳線(xiàn)程數(shù)越多而不是配置的線(xiàn)程數(shù)越多),QPS越高

 

QPS和響應(yīng)時(shí)間的關(guān)系

1、對(duì)于一般的web系統(tǒng),響應(yīng)時(shí)間一般有CPU執(zhí)行時(shí)間+IO等待時(shí)間組成

2、CPU的執(zhí)行時(shí)間減少,對(duì)QPS有實(shí)質(zhì)的提升,IO時(shí)間的減少,對(duì)QPS提升不明顯。如果要想明顯提升QPS,優(yōu)化系統(tǒng)的時(shí)候要著重優(yōu)化CPU消耗大戶(hù)。

 

最佳線(xiàn)程數(shù)和jvm堆內(nèi)存得關(guān)系:

以上都是依據(jù)性能瓶頸在CPU的情況,對(duì)于java應(yīng)用還有一個(gè)因素是FULL GC,我們要保證在最佳線(xiàn)程數(shù)量下,不會(huì)發(fā)生頻繁FULL GC

根據(jù)公式::(GC時(shí)間間隔/rt)*(并發(fā)線(xiàn)程數(shù)量 * thm) <=young 計(jì)算得到的并發(fā)線(xiàn)程數(shù)量如果<最佳線(xiàn)程數(shù)量 則可能導(dǎo)致FULL GC較頻繁,實(shí)際情況看來(lái)這種情況在web系統(tǒng)上非常少。不過(guò)可以模擬出來(lái)。

所以我們?cè)谠O(shè)置jboss線(xiàn)程的時(shí)候,可以利用內(nèi)存公式計(jì)算出來(lái)的線(xiàn)程數(shù)量來(lái)設(shè)置,通過(guò)壓測(cè)和計(jì)算得到最佳線(xiàn)程數(shù),然后設(shè)置線(xiàn)程數(shù)。

 

設(shè)置線(xiàn)程數(shù)量:

壓測(cè)最佳線(xiàn)程數(shù)<真實(shí)設(shè)置的線(xiàn)程數(shù)量<內(nèi)存極限線(xiàn)程數(shù)

比如,通過(guò)壓測(cè)得到某系統(tǒng)的最佳線(xiàn)程數(shù)量是10,然后通過(guò)內(nèi)存計(jì)算的線(xiàn)程數(shù)量是20,則,設(shè)置jboss的線(xiàn)程數(shù)量為15是可行的,如果直接設(shè)置了10,由于系統(tǒng)本身會(huì)受到一些依賴(lài)系統(tǒng)的變化而產(chǎn)生一些變化,比如系統(tǒng)依賴(lài)一些IO的響應(yīng)時(shí)間會(huì)突然延長(zhǎng),由于線(xiàn)程數(shù)量還是10,其實(shí)這個(gè)時(shí)候最佳線(xiàn)程數(shù)量已經(jīng)變成了13了,由于我們?cè)O(shè)置死了10,其結(jié)果就是導(dǎo)致qps下降,但是如果超過(guò)20,則又會(huì)引起FULL gc非常頻繁,反過(guò)來(lái)影響QPS的下降。

 

jboss的線(xiàn)程數(shù)設(shè)置:

對(duì)于jboss而言,設(shè)置線(xiàn)程數(shù)量要看使用了那種線(xiàn)程連接,如http、ajp

httpajp的設(shè)置是完全一樣的,非常簡(jiǎn)單:

ajp為例,找到server.xml或者tomcat-server.xml:

默認(rèn)線(xiàn)程數(shù)量是200個(gè)

 <Connector port="8009" address="${jboss.bind.address}" connectionTimeout="15000" protocol="AJP/1.3" maxThreads="200" minSpareThreads="40" maxSpareThreads="75" maxPostSize="512000" acceptCount="300" bufferSize="16384" emptySessionPath="false" enableLookups="false" redirectPort="8443" useBodyEncodingForURI="true"/>

這里將默認(rèn)的線(xiàn)程數(shù)量改成了20,當(dāng)然相應(yīng)的其他最小空閑線(xiàn)程數(shù)和最大空閑線(xiàn)程數(shù)也做一下調(diào)整:

<Connector port="8009" address="${jboss.bind.address}" connectionTimeout="15000" protocol="AJP/1.3" maxThreads="20" minSpareThreads="20" maxSpareThreads="20" maxPostSize="512000" acceptCount="300" bufferSize="16384" emptySessionPath="false" enableLookups="false" redirectPort="8443" useBodyEncodingForURI="true"/>





您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP