


版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、長連接和短連接性能測試結果差異這次測試針對長連接和短連接對性能測試的影響做一個簡單的比較,詳細情況見 下面1. 什么是TCP長連接什么是短連接?一般人講的長連接與短連接的,這是一個通俗的說法,這個TCP連接是根據(jù)連接時間的長短定義的。何謂短連接:就是一次操作完后斷開連接,常見于大客戶情況如WEB服務 器,如果每個連接都使用長連接 那么每個客戶都保留一個socket,系統(tǒng)資源耗 費比較大。何謂長連接:就是一次操作完后不斷開連接,連接在一段時間保持著,則是 多用于操作頻繁情況,每個TCP連接都需要三步握手這需要時間如果每個操作 都是先連接再操作的話那么處理速度會降低很多所以每個操作完后都不斷開下次
2、處理時直接發(fā)送數(shù)據(jù)包就可以了,不用重新建立TCP新連接。2. 在性能測試過程中,需要注意業(yè)務需求,應該是用長連接還是短連接?之間 的性能差異大概是多少?如果有差異是消耗在哪里?2.1測試場景簡介:下面以測試XXXX生能測試結果為例,做個簡單的對比.由于XXXX后端協(xié)議 用的是TCP/IP協(xié)議,后端AGENT發(fā)送很多帶不同參數(shù)類型到 MONITOR現(xiàn)要 測試一個MONITOR處理極限是多少?理想狀態(tài)希望一個 monitor最高能支持1W 條AGENTE的信息,并且這個1W條信息時希望只建立一個SOCKETS接里面發(fā) 送的事務數(shù)。2.2測試環(huán)境描述:機器名CPU內(nèi)存OS應用軟件說明10.20.13
3、6.19 (DB)816GLinuxtomcat10.20.136.23(APP)816GLinuxtomcat10.20.136.7388Gwin dowsloadr unner2.2測試腳本簡述:在LR中開發(fā)JAVA腳本,直接發(fā)送字符串并成功接受返回的 字符串。2.4測試結果對比:并發(fā)線 程連接類 型TPS響應時 間CPU內(nèi)存20長連接67660.015SAPR780%DB:23%APP36%DB: 85%20短連接72920.011SAPR740%DB:14%APP57%DB: 83%2.5測試結果分析:線程并發(fā)數(shù)一樣,但是長連接的 TPS低于短連接的TPS相差大概在6%左 右,長連接的
4、應用服務器的APP的資源利用稍微大點,但是短連接的內(nèi)存消耗 明顯比長連接的高,高出了大概58%左右。之所以消耗怎么高是因為,短連接不 停的忙著建立連接,不停的建立握手,這樣頻繁的操作,造成內(nèi)存資源上的很大 消耗。3總結雖然短連接的測試結果TPS以及相應時間是好于長連接的測試結果,但是不 符合線上環(huán)境。最重要的一點是,測試人員,做測試腳本以及設計測試場景的時 候,一定謹記不要把測試數(shù)據(jù)發(fā)送到服務器端,壓力上去后,就不去分析了寫 的測試腳本以及測試場景是否是滿足線上需要的,這樣得出的測試結果會給開 發(fā)人員造成一定的誤解。測試的場景單一,沒有去分析線程并發(fā)在不同的情況下的,性能結果差異是多少,如果誰
5、有興趣可以在分不同的線程并發(fā),多嘗試幾次,看看性能數(shù)據(jù)的 差異是多少?4.測試代碼附上, 4.1長連接代碼:/* LoadRu nner Java script. (Build: 3020)* Script Descripti on:*/import lrapir;import java.io.Data In putStream;import java.io.DataOutputStream;import java.io .I OExceptio n;import java .n et.Socket;public class ActionsSocket socket = null;DataOu
6、tputStream out;DataInputStream in;public int init() throws Throwable 13888);socket = new Socket(10.20.136.23, out = new DataOutputStream(socket.getOutputStream();in = newDataInputStream(socket.getInputStream();sendConnect(out, 10.16.200.119,performance_test);String text = readMessage(in);System.out.
7、println(text);return 0;/end of initpublic int action() throws Throwable send_memory(out); send_jvm(out); send_gc(out); send_threading(out);return 0;/end of actionpublic int end() throws Throwable if (socket != null) socket.close(); return 0;/end of endpublic String readMessage(DataInputStream in) th
8、rowsIOException short type = in.readShort();if (type != 1) throw new IOException(notsupport type + type);int length = in.readInt(); byte bytes = new bytelength; in.readFully(bytes);return new String(bytes, UTF-8);public void sendConnect(DataOutputStream out, String ip,String hostname) throws IOExcep
9、tion String message = /T/:/Connect/,/S/:1,/MAC_ADDR/:/00-26-c6-8f-d8-2 c/,/00-50-56-c0-00-08/,/IP/:/+ ip+/,/192.168.64.1/,/VERSON/:/2.5/,/SERVICE_TAG/:/wens hao-pc-service-tag/,/HOST_NAME/:/+ hostname + /,/CLIENT_SESSION/:;sendMessage(out, message);public void send_memory(DataOutputStream out) throw
10、s Exception long date = System.currentTimeMillis();String message = /T/:/MonitorItemData/,/S/:39,/D/:/UsedPhysicalMe morySize/:1908174848,/MemoryNonHeapCommitted/:41943040,/Mem oryHeapCommitted/:122224640,/MemoryHeapUsed/:101766328,/Tot alPhysicalMemorySize/:2036363264,/UsedSwapSpaceSize/:2582024 19
11、2,/TotalSwapSpaceSize/:4072726528,/MemoryNonHeapUsed/:413 67072,/S/:/APP_NUM/:/demo/,/INST_NUM/:null,/TS/: + date + ,/MID/:548691;public void send_jvm(DataOutputStream out) throws Exception long date = System.currentTimeMillis();String message = /T/:/MonitorItemData/,/S/:42,/D/:/AvailableProce ssors
12、/:2,/JavaHome/:/C:/ProgramFiles/Java/jdk1.6.0_19/jre/,/JavaVersion/:/1.6.0_19/,/ PID/:/3112/,/OSVersion/:/6.1/,/UnloadedClassCount/:0,/ TotalCompilationTime/:6089,/OSName/:/Windows 7/,/JavaSpecificationVersion/:/1.6/,/Arch/:/amd64/,/L oadedClassCount/:5006,/JVM/:/Java HotSpot(TM) 64-Bit ServerVM (16
13、.2-b04, mixed mode)/,/StartTime/:1288273090499,/InputArguments/:/-agent lib:jdwp=transport=dt_socket,suspend=y,address=localhost:55785/ n-Dcatalina.base=D:/java/workspace-dragoon-25/.metadata/.pl ugins/org.eclipse.wst.server.core/tmp0/n-Dcatalina.home=D:/j ava/apache-tomcat-6.0.26/n-Dwtp.deploy=D:/j
14、ava/workspace-dra goon-25/.metadata/.plugins/org.eclipse.wst.server.core/tmp0 /wtpwebapps/n-Djava.endorsed.dirs=D:/java/apache-tomcat-6.0. 26/endorsed/n-Dfile.encoding=UTF-8/,/TotalLoadedClassCount/ :5006,/JavaLibraryPath/:/C:/ProgramFiles/Java/jdk1.6.0_19/bin;.;C:/Windows/Sun/Java/bin;C:/ /Windows/
15、system32;C:/Windows;C:/ProgramFiles/Java/jdk1.6.0_19/jre/bin;C:/product/11.1.0/client_ 1;C:/Windows/system32;C:/Windows;C:/Windows/System32/Wbem ;C:/Windows/System32/WindowsPowerShell/v1.0/;C:/Program Files(x86)/TortoiseSVN/bin;D:/java/apache-maven-2.2.1/bin;C:/P rogram Files (x86)/Subversion/bin;C:
16、/Program Files (x86)/SSH Communications Security/SSH Secure Shell;C:/Program Files (x86)/Subversion/bin;C:/Python25;D:/java/diffutils-2.8.7-1 -bin/bin/,/S/:/APP_NUM/:/demo/,/INST_NUM/:null,/T S/: + date + ,/MID/:554891;public void send_gc(DataOutputStream out) throws Exception long date = System.cur
17、rentTimeMillis();String message = /T/:/MonitorItemData/,/S/:41,/D/:/YoungGCCollect ionTime/:107,/FullGCCollectionTime/:141,/FullGCCollectionCo unt/:11,/PermGenUsed/:39267864,/SurvivorSpaceUsed/:7201080 ,/EdenSpaceUsed/:85454816,/YoungGCCollectionCount/:10,/Old GenUsed/:11791088,/S/:/APP_NUM/:/demo/,
18、/INST_NUM/:nu ll,/TS/: + date + ,/MID/:552091;sendMessage(out, message);public void send_threading(DataOutputStream out) throws Exception long date = System.currentTimeMillis();String message = /T/:/MonitorItemData/,/S/:43,/D/:/RunnableThread Count/:15,/ProcessCpuTimeRate/:0.901,/NewThreadCount/:0,/
19、 TotalStartedThreadCount/:49,/BlockedThreadCount/:0,/DeadLoc kedThreadCount/:0,/FullGCCollectionTimeRate/:0,/DaemonThrea dCount/:17,/WaitingThreadCount/:11,/TeminatedThreadCount/: 0,/ThreadCount/:48,/TimedWaitingThreadCount/:25,/S/:/A PP_NUM/:/demo/,/INST_NUM/:null,/TS/: + date + ,/MID/:550191;sendM
20、essage(out, message);private void sendMessage(DataOutputStream out, String text) throws IOException byte bytes = text.getBytes(UTF-8);out.writeShort(1); out.writeInt(bytes.length);out.write(bytes);4.2 短連接代碼/* LoadRunner Java script. (Build: 3020)* Script Description:*/import lrapi.lr;import java.io.
21、DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import .Socket;public class Actionspublic int init() throws Throwable return 0;/end of initpublic int action() throws Throwable test_connect();return 0;/end of actionpublic int end() throws Throwable return 0;/end of endpubli
22、c void test_connect() throws Exception / 10.249.168.152:18001Socket socket = null;try socket = new Socket(10.20.136.23, 13888);DataOutputStream out = newDataOutputStream(socket.getOutputStream();DataInputStream in = newDataInputStream(socket.getInputStream();sendConnect(out, 10.16.200.119, performan
23、ce_test); String text = readMessage(in);System.out.println(text);send_memory(out); send_jvm(out); send_gc(out); send_threading(out); finally if (socket != null) socket.close();public String readMessage(DataInputStream in) throwsIOException short type = in.readShort();if (type != 1) throw new IOExcep
24、tion(not support type + type);int length = in.readInt();byte bytes = new bytelength;in.readFully(bytes);return new String(bytes, UTF-8);public void sendConnect(DataOutputStream out, String ip,String hostname) throws IOException String message =/T/:/Connect/,/S/:1,/MAC_ADDR/:/00-26-c6-8f-d8-2 c/,/00-
25、50-56-c0-00-08/,/IP/:/+ ip+/,/192.168.64.1/,/VERSON/:/2.5/,/SERVICE_TAG/:/wens hao-pc-service-tag/,/HOST_NAME/:/+ hostname + /,/CLIENT_SESSION/:;sendMessage(out, message);public void send_memory(DataOutputStream out) throws Exception long date = System.currentTimeMillis();String message = /T/:/Monit
26、orItemData/,/S/:39,/D/:/UsedPhysicalMe morySize/:1908174848,/MemoryNonHeapCommitted/:41943040,/Mem oryHeapCommitted/:122224640,/MemoryHeapUsed/:101766328,/Tot alPhysicalMemorySize/:2036363264,/UsedSwapSpaceSize/:2582024 192,/TotalSwapSpaceSize/:4072726528,/MemoryNonHeapUsed/:413 67072,/S/:/APP_NUM/:
27、/demo/,/INST_NUM/:null,/TS/: + date + ,/MID/:548691;sendMessage(out, message);public void send_jvm(DataOutputStream out) throws Exception long date = System.currentTimeMillis();String message = /T/:/MonitorItemData/,/S/:42,/D/:/AvailableProce ssors/:2,/JavaHome/:/C:/Program Files/Java/jdk1.6.0_19/jr
28、e/,/JavaVersion/:/1.6.0_19/,/ PID/:/3112/,/OSVersion/:/6.1/,/UnloadedClassCount/:0,/ TotalCompilationTime/:6089,/OSName/:/Windows 7/,/JavaSpecificationVersion/:/1.6/,/Arch/:/amd64/,/L oadedClassCount/:5006,/JVM/:/Java HotSpot(TM) 64-Bit Server VM (16.2-b04, mixed mode)/,/StartTime/:1288273090499,/In
29、putArguments/:/-agent lib:jdwp=transport=dt_socket,suspend=y,address=localhost:55785/ n-Dcatalina.base=D:/java/workspace-dragoon-25/.metadata/.pl ugins/org.eclipse.wst.server.core/tmp0/n-Dcatalina.home=D:/j ava/apache-tomcat-6.0.26/n-Dwtp.deploy=D:/java/workspace-dra goon-25/.metadata/.plugins/org.e
30、clipse.wst.server.core/tmp0 /wtpwebapps/n-Djava.endorsed.dirs=D:/java/apache-tomcat-6.0. 26/endorsed/n-Dfile.encoding=UTF-8/,/TotalLoadedClassCount/:5006,/JavaLibraryPath/:/C:/ProgramFiles/Java/jdk1.6.0_19/bin;.;C:/Windows/Sun/Java/bin;C:/ /Windows/system32;C:/Windows;C:/ProgramFiles/Java/jdk1.6.0_1
31、9/jre/bin;C:/product/11.1.0/client_ 1;C:/Windows/system32;C:/Windows;C:/Windows/System32/Wbem ;C:/Windows/System32/WindowsPowerShell/v1.0/;C:/Program Files(x86)/TortoiseSVN/bin;D:/java/apache-maven-2.2.1/bin;C:/P rogram Files (x86)/Subversion/bin;C:/Program Files (x86)/SSH Communications Security/SS
32、H Secure Shell;C:/Program Files (x86)/Subversion/bin;C:/Python25;D:/java/diffutils-2.8.7-1 -bin/bin/,/S/:/APP_NUM/:/demo/,/INST_NUM/:null,/T S/: + date + ,/MID/:554891;sendMessage(out, message);public void send_gc(DataOutputStream out) throws Exception long date = System.currentTimeMillis();String mes
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZMDS 20003-2024 醫(yī)療器械網(wǎng)絡安全風險控制 醫(yī)療器械網(wǎng)絡安全能力信息
- 二零二五年度建筑施工現(xiàn)場安全教育培訓協(xié)議
- 2025年度能源行業(yè)員工用工合同樣本
- 2025年度花卉養(yǎng)護與花卉市場銷售渠道合作合同
- 2025年度網(wǎng)絡安全優(yōu)先股入股協(xié)議
- 二零二五年度內(nèi)架承包與施工合同終止及清算協(xié)議
- 二零二五年度車輛交易抵押借款服務協(xié)議
- 2025年度職業(yè)技能提升家教合同
- 二零二五年度合作社入股農(nóng)業(yè)知識產(chǎn)權入股協(xié)議
- 2025年度車輛抵押權法律咨詢合同
- 兒童尿道黏膜脫垂介紹演示培訓課件
- 下肢骨關節(jié)損傷課件
- 2023發(fā)電企業(yè)防汛工作管理辦法
- 食品安全風險評估的課件
- 復方板藍根顆粒工藝驗證方案大全
- 信息技術拓展模塊高職PPT完整全套教學課件
- 高效空調(diào)制冷機房智能控制系統(tǒng)技術規(guī)程
- 《動物王國開大會》說課PPT
- 春玉米套種秋黃瓜技術
- QC成果提高工業(yè)廠房基礎預埋地腳螺栓的精確度
- 四年級下冊勞動技術教案
評論
0/150
提交評論