• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Web應(yīng)用系統(tǒng)并發(fā)性能測(cè)量的研究與應(yīng)用

      2013-12-17 03:15:52
      關(guān)鍵詞:使用率頁(yè)面原子

      吳 銳

      (安徽省教育招生考試院 網(wǎng)絡(luò)信息中心, 安徽 合肥 230022)

      互聯(lián)網(wǎng)用戶具有地理分布范圍廣、數(shù)量不確定、訪問(wèn)突發(fā)性強(qiáng)等特點(diǎn),Web應(yīng)用系統(tǒng)在設(shè)計(jì)時(shí)很難模擬大量用戶同時(shí)訪問(wèn)的場(chǎng)景,對(duì)并發(fā)負(fù)載狀態(tài)缺乏量化測(cè)量和監(jiān)控手段,正式運(yùn)行后容易遇到訪問(wèn)高峰而發(fā)生系統(tǒng)響應(yīng)速度變慢甚至中斷等情況,鐵道部12306售票網(wǎng)站就是屢被詬病的典型案例.Web應(yīng)用系統(tǒng)需在部署前精確測(cè)量并發(fā)性能、部署后實(shí)時(shí)監(jiān)控并發(fā)負(fù)載,根據(jù)運(yùn)行前預(yù)估的和運(yùn)行時(shí)實(shí)際的用戶并發(fā)訪問(wèn)規(guī)模,合理部署、及時(shí)調(diào)整系統(tǒng)的軟硬件數(shù)量,保證用戶對(duì)系統(tǒng)的正常訪問(wèn).

      1并發(fā)與性能指標(biāo)

      1.1Web應(yīng)用系統(tǒng)的并發(fā)

      Web應(yīng)用系統(tǒng)一般采用B/S架構(gòu),本文所研究的并發(fā)指的是系統(tǒng)在同一個(gè)時(shí)間段內(nèi)執(zhí)行的所有用戶HTTP請(qǐng)求和響應(yīng)的總和,當(dāng)這個(gè)時(shí)間段劃分為更小的時(shí)間片時(shí),發(fā)出請(qǐng)求的用戶、HTTP請(qǐng)求和響應(yīng)可能是不同的.

      HTTP是基于TCP的應(yīng)用層協(xié)議,Web應(yīng)用系統(tǒng)并發(fā)也是系統(tǒng)和用戶之間所有TCP連接的總和,但一個(gè)HTTP請(qǐng)求可能因調(diào)用多個(gè)資源而產(chǎn)生多個(gè)TCP連接.每個(gè)TCP連接都會(huì)耗費(fèi)系統(tǒng)一定數(shù)量的CPU使用率、內(nèi)存、互聯(lián)網(wǎng)帶寬等資源,內(nèi)存、互聯(lián)網(wǎng)帶寬很容易進(jìn)行擴(kuò)充,不應(yīng)成為系統(tǒng)并發(fā)性能的瓶頸,執(zhí)行計(jì)算任務(wù)的CPU(包括服務(wù)器CPU、防火墻CPU等)是系統(tǒng)并發(fā)性能的決定因素[1].

      1.2TCP連接狀態(tài)與并發(fā)性能指標(biāo)

      1.2.1TCP連接狀態(tài)

      根據(jù)TCP/IP協(xié)議標(biāo)準(zhǔn)[2],TCP連接有9種狀態(tài)(SYN-RECEIVED、ESTABLISHED、TIME-WAIT等).其中僅ESTABLISHED狀態(tài)TCP連接傳輸應(yīng)用數(shù)據(jù)、執(zhí)行計(jì)算,對(duì)系統(tǒng)資源消耗較大;其他狀態(tài)的TCP連接大多數(shù)處于等待狀態(tài),活動(dòng)時(shí)也僅傳輸握手信號(hào)或關(guān)閉信號(hào),對(duì)系統(tǒng)資源消耗很小.另外Linux 2.6以上版本內(nèi)核的epoll機(jī)制[3],可顯著減少系統(tǒng)存在大量并發(fā)連接、只有少量連接活躍情況下的CPU使用率,使非ESTABLISHED狀態(tài)TCP連接對(duì)CPU的使用率進(jìn)一步減小.

      正常運(yùn)行的Web應(yīng)用系統(tǒng)會(huì)主動(dòng)關(guān)閉與用戶的TCP連接,根據(jù)TCP狀態(tài)轉(zhuǎn)換圖,系統(tǒng)一般只大量出現(xiàn)ESTABLISHED、TIME-WAIT兩種狀態(tài)的TCP連接.對(duì)于TIME-WAIT狀態(tài)TCP連接,可在Linux/Windows操作系統(tǒng)中限制其最大數(shù)量,避免對(duì)系統(tǒng)資源的嚴(yán)重消耗.

      HTTP協(xié)議開(kāi)啟Keep-Alive特性可節(jié)省系統(tǒng)與同一用戶建立TCP連接過(guò)程的開(kāi)銷(xiāo).對(duì)于大量用戶短時(shí)間集中訪問(wèn)的系統(tǒng),采用Keep-Alive會(huì)導(dǎo)致系統(tǒng)被迫長(zhǎng)時(shí)間保持大量ESTABLISHED狀態(tài)TCP連接,系統(tǒng)資源消耗反而變大.另外現(xiàn)代操作系統(tǒng)越來(lái)越先進(jìn),使建立TCP連接的開(kāi)銷(xiāo)越來(lái)越小,如epoll機(jī)制.Keep-Alive也會(huì)造成ESTABLISHED狀態(tài)TCP連接的忙碌和空閑無(wú)法區(qū)分,ESTABLISHED狀態(tài)TCP連接數(shù)量與系統(tǒng)并發(fā)負(fù)載狀態(tài)的關(guān)聯(lián)度減小.所以本文討論的Web應(yīng)用系統(tǒng),關(guān)閉了HTTP的Keep-Alive特性.

      Web應(yīng)用系統(tǒng)中的一些服務(wù)器,可能是另外一些服務(wù)器的客戶端,TCP連接的被動(dòng)關(guān)閉導(dǎo)致系統(tǒng)出現(xiàn)一定數(shù)量的CLOSE-WAIT狀態(tài)TCP連接,但對(duì)系統(tǒng)性能影響很?。?1)服務(wù)器對(duì)服務(wù)器的連接一般會(huì)采用連接池(connection pool)或持久化(persistent)等技術(shù)來(lái)提高性能,這種連接長(zhǎng)時(shí)間保持ESTABLISHED狀態(tài),不會(huì)出現(xiàn)連接狀態(tài)的經(jīng)常變化;(2)服務(wù)器對(duì)服務(wù)器的TCP連接總數(shù)有限,相比服務(wù)器與用戶之間動(dòng)輒數(shù)千的TCP連接并發(fā),數(shù)量微不足道.

      在實(shí)踐中,Web應(yīng)用系統(tǒng)也有可能出現(xiàn)大量SYN-RECEIVED狀態(tài)TCP連接,此時(shí)系統(tǒng)一般處于兩種狀態(tài):遭到了SYN FLOOD攻擊、超負(fù)載運(yùn)行導(dǎo)致與用戶的TCP連接3次握手變慢.

      綜上所述,經(jīng)合理配置的系統(tǒng)在正常運(yùn)行時(shí),ESTABLISHED狀態(tài)TCP連接數(shù)量與系統(tǒng)運(yùn)行負(fù)載密切相關(guān).

      1.2.2并發(fā)性能指標(biāo)

      Web應(yīng)用系統(tǒng)的并發(fā)性能,可從響應(yīng)時(shí)間、吞吐量、用戶行為等方面進(jìn)行研究[4],本文從系統(tǒng)與用戶之間的TCP連接出發(fā),提出以下衡量Web應(yīng)用系統(tǒng)并發(fā)性能的4個(gè)指標(biāo):

      1)PETC-Parallel Established TCP Connections.系統(tǒng)與用戶之間瞬時(shí)處于ESTABLISHED狀態(tài)的TCP連接數(shù),PETC的最大值MPETC是衡量系統(tǒng)并發(fā)性能的最重要指標(biāo).

      2)NTCPS-New TCP Connections Per Second.系統(tǒng)與用戶之間每秒新創(chuàng)建的TCP連接數(shù),代表系統(tǒng)每秒響應(yīng)用戶新請(qǐng)求的能力.

      3)FETCPS-Finished Established TCP Connections Per Second.系統(tǒng)與用戶之間每秒結(jié)束ESTABLISHED狀態(tài)的TCP連接數(shù),結(jié)合完成的總時(shí)間,可以計(jì)算出系統(tǒng)完成單個(gè)TCP連接所需的時(shí)間.

      4)MFETCPS-Max Finished Established TCP Connections Per Second.系統(tǒng)與用戶之間每秒最多可完成的ESTABLISHED狀態(tài)TCP連接數(shù),可根據(jù)FETCPS的單個(gè)TCP連接所需完成時(shí)間進(jìn)行理論推算得出.

      1.2.3系統(tǒng)運(yùn)行狀態(tài)

      隨著用戶每秒對(duì)Web應(yīng)用系統(tǒng)TCP連接請(qǐng)求從無(wú)到有、逐漸增多,系統(tǒng)負(fù)載逐漸加大,PETC、NTCPS、FETCPS三項(xiàng)指標(biāo)先逐漸增大、到了最大值后開(kāi)始減小,MFETCPS指標(biāo)一直減小,可將系統(tǒng)的運(yùn)行狀態(tài)劃分為3個(gè)階段:

      1)輕負(fù)載

      當(dāng)用戶每秒發(fā)出的TCP連接請(qǐng)求數(shù)較少時(shí),系統(tǒng)CPU使用率小于100%,系統(tǒng)每秒可完成處理的ESTABLISHED狀態(tài)TCP連接數(shù)大于新創(chuàng)建的TCP連接數(shù),并發(fā)性能指標(biāo)之間的數(shù)量關(guān)系為:NTCPS=FETCPS

      2)均衡負(fù)載

      當(dāng)用戶每秒發(fā)出的TCP連接請(qǐng)求數(shù)達(dá)到一定數(shù)量時(shí),系統(tǒng)CPU使用率為100%,系統(tǒng)每秒新建的TCP連接數(shù)等于每秒完成處理并關(guān)閉的TCP連接數(shù),系統(tǒng)處于吞吐動(dòng)態(tài)平衡狀態(tài),并發(fā)性能指標(biāo)之間的數(shù)量關(guān)系為:NTCPS=FETCPS=MFETCPS,在TCP連接請(qǐng)求對(duì)時(shí)間均勻分布的前提下,PETC=NTCPS.將系統(tǒng)此運(yùn)行狀態(tài)稱為最佳運(yùn)行狀態(tài),此時(shí)PETC達(dá)到最大值.理論上用戶向系統(tǒng)發(fā)出的MPETC個(gè)TCP連接,可在一秒之內(nèi)獲得所需的結(jié)果,用戶感覺(jué)不到系統(tǒng)響應(yīng)的延時(shí).

      3)重負(fù)載

      當(dāng)用戶每秒發(fā)出的TCP連接請(qǐng)求數(shù)再加大,系統(tǒng)負(fù)載再加重,對(duì)用戶TCP請(qǐng)求的響應(yīng)時(shí)間變長(zhǎng)、甚至超時(shí)中斷,此時(shí)系統(tǒng)CPU使用率仍為100%,但系統(tǒng)被迫耗費(fèi)更多的CPU資源去處理與用戶的TCP三次握手連接,用于處理ESTABLISHED狀態(tài)TCP連接的CPU資源反而減少,PETC、FETCPS、MFETCPS從最大值開(kāi)始減小,并發(fā)指標(biāo)之間的數(shù)量關(guān)系為:NTCPS>FETCPS=MFETCPS,在TCP連接請(qǐng)求對(duì)時(shí)間均勻分布的前提下,PETC>FETCPS,但PETC與NTCPS的大小關(guān)系不確定.

      用戶每秒TCP連接請(qǐng)求數(shù)與PETC、MFETCPS兩項(xiàng)指標(biāo)之間的數(shù)量關(guān)系如圖1所示.

      圖1 TCP請(qǐng)求數(shù)與并發(fā)指標(biāo)

      2并發(fā)性能指標(biāo)的測(cè)量方法

      Web應(yīng)用系統(tǒng)在運(yùn)行時(shí),存在著多個(gè)用戶對(duì)多種資源的多個(gè)請(qǐng)求,系統(tǒng)在響應(yīng)這些差異化的請(qǐng)求時(shí)所耗費(fèi)的CPU使用率、內(nèi)存、互聯(lián)網(wǎng)帶寬等資源相差很大,給測(cè)量系統(tǒng)并發(fā)性能帶來(lái)了挑戰(zhàn),解決方案有兩種:

      第一種,采用復(fù)雜的分布式測(cè)試方案,借助于商業(yè)測(cè)試軟件(如LoadRunner)模擬對(duì)Web應(yīng)用系統(tǒng)的大規(guī)模互聯(lián)網(wǎng)訪問(wèn)[5],這種方案實(shí)施成本高,對(duì)復(fù)雜場(chǎng)景的模擬也存在困難.

      第二種,將用戶HTTP請(qǐng)求、系統(tǒng)HTTP響應(yīng)按照運(yùn)行流程,分解成最小的、不可再分割的原子請(qǐng)求和響應(yīng)集合,簡(jiǎn)化測(cè)試場(chǎng)景,使用自編或開(kāi)源軟件精確測(cè)量各類原子請(qǐng)求和響應(yīng)的并發(fā)性能,再將這些原子請(qǐng)求和響應(yīng)按并聯(lián)或串聯(lián)的方式進(jìn)行組合計(jì)算,最后得出整個(gè)系統(tǒng)的并發(fā)性能[6].

      本文采取的是第二種方案.

      2.1原子分解與MPETC計(jì)算公式

      按照以下三種分解方法,可將Web應(yīng)用系統(tǒng)所有HTTP請(qǐng)求與響應(yīng)分解為各類原子請(qǐng)求與響應(yīng)集合,而原子請(qǐng)求和響應(yīng)與TCP連接之間存在著一一對(duì)應(yīng)關(guān)系,從而將并發(fā)性能測(cè)量轉(zhuǎn)換為對(duì)TCP連接數(shù)的測(cè)量.

      2.1.1并行響應(yīng)的分解

      用戶向系統(tǒng)發(fā)出一個(gè)HTTP請(qǐng)求獲取資源A1,但A1需調(diào)用資源A2、…、An,系統(tǒng)需一次返回n個(gè)資源進(jìn)行響應(yīng),這里的資源是個(gè)廣義的概念,可以是靜態(tài)網(wǎng)頁(yè)、動(dòng)態(tài)網(wǎng)頁(yè)、圖片、驗(yàn)證碼生成等.將資源A1改造為A1′,消除對(duì)資源A2、…、An的調(diào)用,該HTTP請(qǐng)求和響應(yīng)分解成對(duì)資源A1′、A2、…、An的請(qǐng)求和響應(yīng)H1、H2、…、Hn,如圖2所示,分別對(duì)這些請(qǐng)求和響應(yīng)測(cè)量出最大并發(fā)數(shù)MPETC1、MPETC2、…、MPETCn.

      圖2 并行響應(yīng)的原子分解

      計(jì)算得

      (1)

      2.1.2串行請(qǐng)求的分解

      在動(dòng)態(tài)交互系統(tǒng)中,用戶需按照一定的次序連續(xù)發(fā)出請(qǐng)求:H1、H2、…、Hn,才能獲得所需要的最終資源An.將請(qǐng)求H1、H2、…、Hn改造為請(qǐng)求H1、H2′、…、Hn′,發(fā)出請(qǐng)求Hk′(k=2,…,n)時(shí),攜帶請(qǐng)求H1、H2、…Hk-1的響應(yīng)結(jié)果,消除Hk′對(duì)前面k-1個(gè)請(qǐng)求的依賴,使得這n個(gè)請(qǐng)求彼此獨(dú)立,如圖3所示,這種改造并不會(huì)改變每個(gè)請(qǐng)求的最大并發(fā)數(shù),對(duì)每個(gè)請(qǐng)求H1、H2′、…、Hn′,分別測(cè)量出最大并發(fā)數(shù)MPETC1、MPETC2、…、MPETCn.

      圖3 串行請(qǐng)求的原子分解

      假設(shè)原系統(tǒng)處于最佳運(yùn)行狀態(tài)有MPETC個(gè)并發(fā),則請(qǐng)求H1、H2、…、Hn的并發(fā)數(shù)是相同的,論證如下:因?yàn)橛脩魯?shù)量足夠多、操作彼此獨(dú)立,假設(shè)請(qǐng)求Hk的并發(fā)數(shù)PETCk最小,則Hk之后的請(qǐng)求因處理速度較快、被Hk請(qǐng)求阻塞,并發(fā)數(shù)自動(dòng)降為PETCk,釋放了部分CPU資源可用于處理Hk請(qǐng)求;Hk之前的請(qǐng)求因處理速度較快,在Hk請(qǐng)求處產(chǎn)生瓶頸,部分用戶因系統(tǒng)響應(yīng)變慢而處于等待狀態(tài),阻塞了新用戶對(duì)系統(tǒng)發(fā)出的新請(qǐng)求,系統(tǒng)負(fù)載減小,系統(tǒng)對(duì)請(qǐng)求Hk的處理速度加快,最終PETCk與前面k-1請(qǐng)求的并發(fā)數(shù)相同.同理可得公式(1).

      2.1.3并行請(qǐng)求的分解

      計(jì)算得

      (2)

      特別對(duì)于所有資源都被等概率(Pi=1/n,i=1…n)訪問(wèn)的特殊情形,公式(2)即為公式(1).

      2.2測(cè)量方法

      對(duì)并發(fā)指標(biāo)的測(cè)量,可使用基于監(jiān)控和基于測(cè)試軟件兩種方法,基于監(jiān)控適和對(duì)系統(tǒng)各個(gè)時(shí)刻的PETC、NTCPS進(jìn)行連續(xù)測(cè)量,結(jié)合Cacti數(shù)據(jù)采集和繪圖軟件可獲取該并發(fā)指標(biāo)在任意時(shí)刻的數(shù)值和圖形[8];基于測(cè)試軟件適合對(duì)FETCPS、MFETCPS進(jìn)行有限次測(cè)量來(lái)確定MPETC.

      2.2.1PETC的測(cè)量

      (1)基于SNMP監(jiān)控

      SNMP[9]的tcpCurrEstab(OID:1.3.6.1.2.1.6.9)監(jiān)控值代表系統(tǒng)中ESTABLISHED和CLOSE-WAIT兩種狀態(tài)的TCP連接總數(shù),前文已經(jīng)論述了在Web應(yīng)用系統(tǒng)服務(wù)器中CLOSE-WAIT狀態(tài)TCP連接數(shù)為零或極少,但tcpCurrEstab值不能直接作為PETC值,在多層架構(gòu)的系統(tǒng)中,用戶與系統(tǒng)第一層建立一個(gè)TCP連接,第一層會(huì)依次與其他層建立TCP連接,這些連接的生命周期相同,連接的總數(shù)與系統(tǒng)的層數(shù)相關(guān),此時(shí)tcpCurrEstab值與PETC值呈倍數(shù)關(guān)系.

      (2)基于應(yīng)用軟件監(jiān)控

      一些應(yīng)用軟件內(nèi)置了與用戶建立的ESTABLISHED狀態(tài)TCP連接數(shù)監(jiān)控,可直接獲取PETC值,如Nginx軟件的NginxStatus監(jiān)控.

      2.2.2NTCPS的測(cè)量

      SNMP的tcpPassiveOpens(OID:1.3.6.1.2.1.6.6)監(jiān)控值代表系統(tǒng)中TCP端口由LISTEN狀態(tài)轉(zhuǎn)變?yōu)镾YN-RECEIVED狀態(tài)的數(shù)量,與PETC的情形類似,該數(shù)值與NTCPS值呈倍數(shù)關(guān)系.

      2.2.3FETCPS和MFETCPS的測(cè)量

      對(duì)Web應(yīng)用系統(tǒng)的HTTP請(qǐng)求和響應(yīng)進(jìn)行原子分解后,降低了并發(fā)性能測(cè)試軟件的復(fù)雜度,對(duì)于每個(gè)原子請(qǐng)求和響應(yīng),可使用簡(jiǎn)單的并發(fā)性能測(cè)試軟件向系統(tǒng)發(fā)出一定并發(fā)數(shù)量的原子HTTP請(qǐng)求,結(jié)合完成這些請(qǐng)求實(shí)際所需的總時(shí)間,得出該并發(fā)數(shù)量下的FETCPS和MFETCPS.

      開(kāi)源軟件Apache自帶的ab[10]可用于測(cè)量原子請(qǐng)求和響應(yīng)的MFETCPS,使用的命令格式為:ab -c c0-n n0 http://ip/index.html,其中參數(shù)c0為并行請(qǐng)求數(shù)、n0為請(qǐng)求總數(shù),ab軟件采用的測(cè)試策略是前一個(gè)請(qǐng)求被系統(tǒng)響應(yīng)完畢就立即發(fā)出一個(gè)新請(qǐng)求,在c0個(gè)并行請(qǐng)求的前提下,對(duì)系統(tǒng)發(fā)出盡可能多的請(qǐng)求數(shù).所以命令執(zhí)行完畢后輸出的結(jié)果中:“Time per request”數(shù)值t0是系統(tǒng)完成每個(gè)TCP連接所需要的時(shí)間、“Requests per second”數(shù)值r0即為MFETCPS.

      2.2.4MPETC的測(cè)量

      基于監(jiān)控和ab軟件都能測(cè)量出MPETC數(shù)值,但基于ab軟件的測(cè)量更快捷,可采用二分查找法:

      1)發(fā)出一個(gè)較小的并行請(qǐng)求數(shù)C1,測(cè)得MFETCPS1,此時(shí)C1

      2)發(fā)出一個(gè)很大的并行請(qǐng)求數(shù)C2,測(cè)得MFETCPS2,此時(shí)C2>MFETCPS2.

      3)發(fā)出并行請(qǐng)求數(shù)C3=(C1+C2)/2,測(cè)得MFETCPS3,若C3=MFETCPS3,則MPETC值為C3,否則根據(jù)C3和MFETCPS3的大小關(guān)系重復(fù)以上步驟.

      3高考網(wǎng)上查分系統(tǒng)并發(fā)性能測(cè)量

      3.1查分系統(tǒng)概況

      查分系統(tǒng)采用公認(rèn)的動(dòng)態(tài)網(wǎng)頁(yè)并發(fā)性能最高的Linux/Nginx/PHP軟件組合并進(jìn)行了設(shè)計(jì)優(yōu)化[11-12],系統(tǒng)架構(gòu)如圖4所示.負(fù)載均衡器后端是多臺(tái)查分服務(wù)器,所有查分服務(wù)器共用Oracle數(shù)據(jù)庫(kù)服務(wù)器,查分服務(wù)器的硬件配置為1顆4核3.0GHz主頻CPU、4G內(nèi)存,Oracle數(shù)據(jù)庫(kù)服務(wù)器硬件配置為2顆4核2.4GHz主頻CPU、16G內(nèi)存.

      圖4 高考網(wǎng)上查分系統(tǒng)架構(gòu)

      查分系統(tǒng)對(duì)外開(kāi)放前,首頁(yè)是一個(gè)html靜態(tài)頁(yè)面,發(fā)布提示信息給考生.查分系統(tǒng)對(duì)外開(kāi)放后,首頁(yè)是一個(gè)php動(dòng)態(tài)頁(yè)面,需考生輸入座位號(hào)、身份證號(hào)、驗(yàn)證碼,發(fā)送給php分?jǐn)?shù)查詢動(dòng)態(tài)頁(yè)面,獲得分?jǐn)?shù)結(jié)果.

      在計(jì)算復(fù)雜度確定的前提下,Web頁(yè)面的并發(fā)數(shù)與頁(yè)面長(zhǎng)度直接相關(guān),本查分系統(tǒng)涉及的所有頁(yè)面大小控制在5KB左右,除了驗(yàn)證碼的圖片,不包含其他任何圖片,否則系統(tǒng)對(duì)互聯(lián)網(wǎng)帶寬需求太大.

      Cacti系統(tǒng)每隔1min采集一次PETC、NTCPS、CPU使用率等監(jiān)控值并繪圖。

      3.2MPETC的測(cè)量

      3.2.1 查分服務(wù)器

      靜態(tài)首頁(yè)僅含靜態(tài)文字,無(wú)需進(jìn)行原子分解;信息輸入和分?jǐn)?shù)查詢兩個(gè)動(dòng)態(tài)頁(yè)面必須按順序運(yùn)行,按串行請(qǐng)求方式進(jìn)行原子分解和公式計(jì)算;信息輸入頁(yè)面內(nèi)含文字提示和驗(yàn)證碼圖片兩個(gè)資源,ab軟件無(wú)法在一次請(qǐng)求中獲取這兩個(gè)資源,按并行響應(yīng)方式進(jìn)行原子分解和公式計(jì)算。

      1)靜態(tài)頁(yè)面

      按前文所述的二分查找法測(cè)量靜態(tài)頁(yè)面的MPETC為1.06萬(wàn),見(jiàn)表1,ab的命令格式為:ab -c c0 -n n0 http://ip/index.html,c0的起始最小、最大值選為1000、16000,n0為600萬(wàn),保證測(cè)試的持續(xù)時(shí)間為10min左右.

      表1ab軟件二分查找法測(cè)量MPETC

      2)信息輸入頁(yè)面

      3)分?jǐn)?shù)輸出頁(yè)面

      分?jǐn)?shù)輸出頁(yè)面out.php的運(yùn)行依賴于信息輸入頁(yè)面index.php以POST方式提交的座位號(hào)、身份證號(hào)、驗(yàn)證碼參數(shù),測(cè)試時(shí)修改out.php代碼,使其可從測(cè)試命令行獲得以GET方式提交的參數(shù),ab的命令格式為ab -c c0 -n n0 http://ip/out.php?zwh=zwh0&sfzh=sfzh0&code=code0,同樣使用二分查找法測(cè)得每臺(tái)服務(wù)器分?jǐn)?shù)輸出頁(yè)面的MPETC為2810.

      4)查分服務(wù)器

      3.2.2防火墻和負(fù)載均衡器

      防火墻、負(fù)載均衡器等網(wǎng)絡(luò)設(shè)備的并發(fā)性能也制約了Web應(yīng)用系統(tǒng)對(duì)用戶可提供的并發(fā)性能,網(wǎng)絡(luò)設(shè)備對(duì)于任何TCP連接,只提供數(shù)據(jù)傳輸功能、不執(zhí)行任何計(jì)算,并發(fā)性能僅與TCP連接傳輸?shù)臄?shù)據(jù)長(zhǎng)度有關(guān).可采用黑盒測(cè)試的方式對(duì)網(wǎng)絡(luò)設(shè)備并發(fā)指標(biāo)進(jìn)行測(cè)量[13],如圖5所示.對(duì)于不同的資源Ak,發(fā)出測(cè)試請(qǐng)求H1,當(dāng)網(wǎng)絡(luò)設(shè)備CPU使用率為100%時(shí),并發(fā)數(shù)PETCk即為網(wǎng)絡(luò)設(shè)備對(duì)資源Ak請(qǐng)求的MPETC.若網(wǎng)絡(luò)設(shè)備并發(fā)性能較好,可根據(jù)實(shí)際情況發(fā)出多路測(cè)試請(qǐng)求H2、…、Hm.

      圖5 網(wǎng)絡(luò)設(shè)備并發(fā)性能指標(biāo)的測(cè)量

      在網(wǎng)頁(yè)長(zhǎng)度5KB的情形下,本系統(tǒng)使用的某款防火墻和負(fù)載均衡器的MPETC值分別為1.02萬(wàn)、1.36萬(wàn).

      3.3并發(fā)指標(biāo)與硬件數(shù)量

      在本系統(tǒng)中,防火墻和負(fù)載均衡器各一臺(tái),無(wú)法通過(guò)增加數(shù)量來(lái)提高并發(fā)指標(biāo),這決定了整個(gè)系統(tǒng)對(duì)互聯(lián)網(wǎng)用戶可提供的最大PETC即為防火墻的MPETC:1.02萬(wàn).

      3.3.1查分服務(wù)器數(shù)量

      所有查分服務(wù)器的MPETC總和達(dá)到1.02萬(wàn)即可,靜態(tài)網(wǎng)頁(yè)服務(wù)器只需要1臺(tái)(1.06萬(wàn))、動(dòng)態(tài)網(wǎng)頁(yè)查分服務(wù)器需要3臺(tái)(3577×3=10731).

      3.3.2Oracle數(shù)據(jù)庫(kù)服務(wù)器數(shù)量

      在對(duì)單臺(tái)查分服務(wù)器MPETC測(cè)量時(shí),Cacti監(jiān)控顯示分?jǐn)?shù)查詢引起的Oracle數(shù)據(jù)庫(kù)服務(wù)器CPU使用率為4%,3臺(tái)查分服務(wù)器同時(shí)運(yùn)行時(shí),Oracle數(shù)據(jù)庫(kù)服務(wù)器CPU使用率為12%,使用1臺(tái)Oracle數(shù)據(jù)庫(kù)服務(wù)器即可滿足系統(tǒng)需要.

      3.3.3互聯(lián)網(wǎng)帶寬

      查分系統(tǒng)對(duì)互聯(lián)網(wǎng)帶寬的最大需求為408Mbits(=1.02萬(wàn)×5KB×8),遠(yuǎn)大于現(xiàn)有的200Mbits互聯(lián)網(wǎng)帶寬,解決方案有2種:

      1)增加3條100M寬帶,這會(huì)增加額外的費(fèi)用.

      2)查分服務(wù)器啟用Nginx靜態(tài)html網(wǎng)頁(yè)和動(dòng)態(tài)php網(wǎng)頁(yè)的HTTP壓縮傳輸,對(duì)于純文本信息的網(wǎng)頁(yè),可節(jié)省50%以上的帶寬,但壓縮傳輸會(huì)消耗一些CPU使用率,尤其是動(dòng)態(tài)php網(wǎng)頁(yè)的壓縮傳輸可導(dǎo)致服務(wù)器MPETC下降約25%,可通過(guò)增加1臺(tái)動(dòng)態(tài)php網(wǎng)頁(yè)查分服務(wù)器來(lái)保持系統(tǒng)MPETC不減少.

      3.3.4運(yùn)行效果

      綜上所述,查分系統(tǒng)最終采用4臺(tái)查分服務(wù)器、1臺(tái)Oracle數(shù)據(jù)庫(kù)服務(wù)器,系統(tǒng)MPETC為1.02萬(wàn),每秒有5 100個(gè)考生可查出分?jǐn)?shù)結(jié)果,預(yù)計(jì)全省50萬(wàn)考生可在98s之內(nèi)完成查分.

      安徽省2012年高考網(wǎng)上查分系統(tǒng)實(shí)際運(yùn)行時(shí),Cacti監(jiān)控表明系統(tǒng)PETC最大值不超過(guò)7 000,小于設(shè)計(jì)指標(biāo)1.02萬(wàn)。所有查分的考生都可在信息輸入后1s之內(nèi)查出分?jǐn)?shù)結(jié)果,獲得良好的社會(huì)反響.

      4結(jié)束語(yǔ)

      本文提出的HTTP請(qǐng)求和響應(yīng)的原子分解策略,簡(jiǎn)化了并發(fā)性能測(cè)試的場(chǎng)景,降低了并發(fā)性能測(cè)試軟件的復(fù)雜度,便于精確定位系統(tǒng)并發(fā)性能瓶頸,有針對(duì)性地進(jìn)行優(yōu)化設(shè)計(jì).本文提出的并發(fā)性能指標(biāo),在系統(tǒng)設(shè)計(jì)時(shí)可定量確定并發(fā)性能,在系統(tǒng)運(yùn)行時(shí)可實(shí)時(shí)監(jiān)控并發(fā)負(fù)載狀態(tài),為保障系統(tǒng)正常運(yùn)行打下基礎(chǔ).

      [1] 李邐. Web項(xiàng)目性能測(cè)試實(shí)例設(shè)計(jì)與分析[J].遼寧高職學(xué)報(bào),2009,11(9):89-92.

      [2] Stevens W R.TCP/IP詳解卷1:協(xié)議[M].北京:機(jī)械工業(yè)出版社,2000:174-191.

      [3] 張軼凡,盧正興,王芙蓉. Linux下高性能網(wǎng)絡(luò)I/O解決方案分析[J].現(xiàn)代計(jì)算機(jī),2006(247):90-93.

      [4] 蘭景英,王永恒. Web性能測(cè)試研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008,18(11):90-93.

      [5] 左為平,楊曉亞. WEB應(yīng)用系統(tǒng)性能測(cè)試的實(shí)現(xiàn)[J].重慶科技學(xué)院學(xué)報(bào):自然科學(xué)版,2012,14(1):131-132.

      [6] 賀樂(lè)天,孫永強(qiáng). 分布式計(jì)算的并發(fā)測(cè)量[J].軟件學(xué)報(bào),1998,9(1):30-35.

      [7] 劉荷花. Web性能測(cè)試的實(shí)現(xiàn)方法[J].山西電子技術(shù),2010(1):64-65.

      [8] The Cacti Group Inc. Cacti Manual [EB/OL]. (2012)[2012-6-25]. http://www.cacti.net/downloads/docs/html/index.html.

      [9] 武孟軍. 精通SNMP[M]. 北京:人民郵電出版社,2010.

      [10] 邵芬,于國(guó)防,付海燕. AB:一種簡(jiǎn)單的性能測(cè)試工具[J].計(jì)算機(jī)時(shí)代,2007(12):59-60.

      [11] 張宴.實(shí)戰(zhàn)Nginx:取代Apache的高性能Web服務(wù)器[M]. 北京:電子工業(yè)出版社,2010.

      [12] 李軍.高并發(fā)Web系統(tǒng)的設(shè)計(jì)與優(yōu)化[D].北京:北京交通大學(xué),2009.

      [13] 楊建光,梅大成.黑盒測(cè)試方法和綜合策略的研究[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2012(1):121-122.

      猜你喜歡
      使用率頁(yè)面原子
      大狗熊在睡覺(jué)
      刷新生活的頁(yè)面
      原子究竟有多小?
      原子可以結(jié)合嗎?
      帶你認(rèn)識(shí)原子
      胃腸外科圍手術(shù)期合理使用抗菌藥物的探討
      初中生學(xué)習(xí)·低(2012年4期)2012-04-29 04:29:50
      初中生學(xué)習(xí)·低(2012年7期)2012-04-29 00:44:03
      凝聚智慧,著眼未來(lái)
      同一Word文檔 縱橫頁(yè)面并存
      项城市| 濮阳市| 正阳县| 绥德县| 博野县| 竹山县| 赤水市| 宁远县| 芮城县| 德格县| 洞口县| 海口市| 镇雄县| 永登县| 宜春市| 丰镇市| 信阳市| 柘城县| 鲜城| 崇礼县| 高雄市| 监利县| 尖扎县| 温州市| 长武县| 星子县| 隆尧县| 房山区| 翼城县| 平原县| 太白县| 红桥区| 扬中市| 张家口市| 沙雅县| 高陵县| 富阳市| 杭锦后旗| 察隅县| 武隆县| 临城县|