<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    聶永的博客

    記錄工作/學(xué)習(xí)的點(diǎn)點(diǎn)滴滴。

    Tsung筆記之開(kāi)篇

    前言

    有測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)模式,目的在于確保業(yè)務(wù)層面功能是準(zhǔn)確的,每一次新增、修改等動(dòng)作確保都不會(huì)影響到現(xiàn)有功能。功能開(kāi)發(fā)完成了,需要部署到線上,系統(tǒng)能夠承載多大的用戶量呢,這時(shí)候就需要借助于性能壓測(cè),也稱之為壓力測(cè)試,界定系統(tǒng)能夠承載具體容量上限,從容應(yīng)對(duì)業(yè)務(wù)的運(yùn)營(yíng)需要,擴(kuò)容或縮容,心中有底。

    工欲善其事,必先利其器。掌握一種壓測(cè)工具,并切實(shí)應(yīng)用到實(shí)踐環(huán)境中,并以此不斷迭代,壓力測(cè)試驅(qū)動(dòng)推動(dòng)所開(kāi)發(fā)后端應(yīng)用處理性能逐漸完善。

    目前成熟的支持支持TCP、HTTP等連接通道的壓測(cè)工具不少,以前接觸過(guò)Apache JMeter,后面又接觸過(guò)Tsung,因?yàn)樵趯?shí)際環(huán)境下使用比較多,支持豐富的業(yè)務(wù)場(chǎng)景定義,并且可擴(kuò)展性強(qiáng),因此Tsung強(qiáng)力推薦之。

    為什么要選擇Tsung

    • 基于Erlang,并發(fā)處理性能好,可以模擬足夠多海量用戶,只要你有足夠多的機(jī)器
    • 受益于Erlang,天然支持分布式,很歡快的運(yùn)行在一個(gè)集群中
    • 支持協(xié)議眾多 WebDAV/WebScoket/MQTT/MySQL/PGSQL/Shell/AQMP/JABBER/XMPP/LDAP 等
    • 傳輸通道支持 TCP/UDP/SSL,更底層支持IPv4/IPv6
    • 支持單機(jī)綁定多個(gè)IP:無(wú)論是虛擬IP,還是物理網(wǎng)卡綁定IP,可以突破單機(jī)端口65535的限制,擴(kuò)展盡可能多的網(wǎng)絡(luò)連接出口地址
    • 支持監(jiān)控被壓測(cè)的服務(wù)器,通過(guò)Erlang Agent/SNMP/Munin
    • 壓測(cè)細(xì)節(jié)XML可配置,這是一個(gè)完全基于情景的壓力測(cè)試行為清單,依賴于你的想象,呈現(xiàn)完整業(yè)務(wù)的表達(dá)
      • 場(chǎng)景可以是動(dòng)態(tài)的,來(lái)自于文件、代碼或者服務(wù)器響應(yīng)可以構(gòu)成下一個(gè)請(qǐng)求的參數(shù),這就是可編程的請(qǐng)求嘛
      • 行為可以混搭,回話可以在不同場(chǎng)景中,按照不同的行為規(guī)范各自平行進(jìn)行
      • 休眠,或暫停機(jī)制,是可以隨機(jī)的,親
      • 壓測(cè)用戶產(chǎn)生方式,動(dòng)態(tài)有序或隨機(jī)

    總之,Tsung是一款開(kāi)源的高性能分布式壓力測(cè)試工具,支持可編程的情景化測(cè)試方案,要向發(fā)揮它的特性,依賴于人們的想象力和創(chuàng)造性。

    為什么要壓力測(cè)試驅(qū)動(dòng)呢 ?

    軟件/系統(tǒng)架構(gòu)往往著眼于總體結(jié)構(gòu),這個(gè)可以是一個(gè)逐漸完善的過(guò)程。這種自我的不斷完善的驅(qū)動(dòng)往往來(lái)自于實(shí)踐、線上考驗(yàn)。而壓力測(cè)試可以提供一種推動(dòng),盡心盡力暴露著架構(gòu)在性能容量存在的一些不足和缺陷,促使著向著更好的方向發(fā)展。

    系統(tǒng)的構(gòu)建依賴于具體參與執(zhí)行的人,就算是一群資深的工程師,業(yè)務(wù)上每一次功能的快速更迭、任何潛在局部修改都會(huì)導(dǎo)致影響、拖垮整體性能,這就是人們常說(shuō)的 ”蝴蝶效應(yīng)“,牽一發(fā)而動(dòng)全身。

    如何提早感知并且提早修復(fù),這就需要壓力測(cè)試的驅(qū)動(dòng),并且壓力測(cè)試應(yīng)該成為一個(gè)常規(guī)化的例行行為,日常化的動(dòng)作。在每一次修改之后,都要過(guò)一輪的壓測(cè)的碾壓之后,提供當(dāng)前后端應(yīng)用處理的性能、容量等具體指標(biāo),用于指導(dǎo)后續(xù)業(yè)務(wù)上線業(yè)務(wù)的開(kāi)展。

    實(shí)際操作上的建議

    在一般互聯(lián)網(wǎng)公司,一般線上程序修改后之后,需要經(jīng)過(guò)QA團(tuán)隊(duì)/部門全部功能回歸、校驗(yàn)之后才能夠上線,往往缺少壓測(cè)環(huán)節(jié),因?yàn)樗?她們并不保證系統(tǒng)處理性能和容量是否惡化,系統(tǒng)的性能建立在系統(tǒng)總體的功能上,如何避免在性能上出現(xiàn)”牽一發(fā)而動(dòng)全身“,建議有條件的QA同學(xué)/團(tuán)隊(duì)考慮增加性能壓測(cè)環(huán)節(jié),功能 + 性能雙重回歸,修改影響點(diǎn)清晰、透明化。

    筆記列表

    本系列筆記,基于tsung-1.6.0源碼基礎(chǔ)上分析,運(yùn)行環(huán)境為L(zhǎng)inux Centos 6。

    筆記列表:

    1. Tsung筆記之主從模型篇
    2. Tsung筆記之主從資源協(xié)調(diào)篇
    3. Tsung筆記之壓測(cè)端資源限制篇
    4. Tsung筆記之分布式增強(qiáng)跳出SSH羈絆篇
    5. Tsung筆記之IP直連支持篇
    6. Tsung筆記之監(jiān)控?cái)?shù)據(jù)收集篇
    7. Tsung筆記之插件編寫篇
    8. Tsung筆記之100萬(wàn)用戶壓測(cè)執(zhí)行步驟篇
    9. Tsung筆記之IP地址和端口限制突破篇

    為了方便理解,一些用詞說(shuō)明:

    • 主節(jié)點(diǎn),也稱之為Master Node,指的是運(yùn)行tsung_controller的應(yīng)用服務(wù)實(shí)例,運(yùn)行tsung啟動(dòng)應(yīng)用自動(dòng)產(chǎn)生“tsung_controller@機(jī)器名/IP”節(jié)點(diǎn)名稱,一般使用過(guò)Erlang的同學(xué)會(huì)很明白
    • 從節(jié)點(diǎn),即tsung client應(yīng)用實(shí)例,對(duì)應(yīng) tsung/src/tsung 項(xiàng)目代碼,由tsung_controller主節(jié)點(diǎn)控制啟動(dòng)、關(guān)閉、任務(wù)分配等

    小結(jié)

    參與一個(gè)實(shí)時(shí)性交互強(qiáng)的項(xiàng)目,從一開(kāi)始單機(jī)支撐不夠1萬(wàn)用戶、平均請(qǐng)求響應(yīng)時(shí)間約900毫秒,到目前混合部署的單機(jī)支撐50萬(wàn)用戶、平均響應(yīng)時(shí)間為16毫秒,這個(gè)過(guò)程中Tsung不斷的壓測(cè)推動(dòng)著架構(gòu)逐漸穩(wěn)定、系統(tǒng)承載容量、QPS優(yōu)化等完全達(dá)標(biāo)。這是一個(gè)壓力測(cè)試驅(qū)動(dòng)性能改進(jìn)的流程,每一步的改進(jìn)能夠得到正向反饋。

    這一系列筆記,所談核心是Tsung,無(wú)論是認(rèn)知還是改進(jìn),最終都是為了理解利器的方方面面,方便著手于實(shí)踐環(huán)境中,壓測(cè)所帶來(lái)的能量能夠驅(qū)動(dòng)我們的程序/服務(wù)性能提升、穩(wěn)定運(yùn)行,進(jìn)而更好方便我們進(jìn)行容量規(guī)劃、線上部署等。

    posted on 2016-07-22 15:36 nieyong 閱讀(5544) 評(píng)論(1)  編輯  收藏 所屬分類: 壓測(cè)

    評(píng)論

    # re: Tsung筆記之開(kāi)篇 2016-08-04 17:33 盧松松博客

    不是碼農(nóng),覺(jué)得太好了  回復(fù)  更多評(píng)論   

    公告

    所有文章皆為原創(chuàng),若轉(zhuǎn)載請(qǐng)標(biāo)明出處,謝謝~

    新浪微博,歡迎關(guān)注:

    導(dǎo)航

    <2016年7月>
    262728293012
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    統(tǒng)計(jì)

    常用鏈接

    留言簿(58)

    隨筆分類(130)

    隨筆檔案(151)

    個(gè)人收藏

    最新隨筆

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 一级有奶水毛片免费看| 在线观看免费为成年视频| 亚洲国产高清在线精品一区| 大地资源在线观看免费高清| 又长又大又粗又硬3p免费视频| 亚洲成A人片在线观看无码不卡| 无码区日韩特区永久免费系列 | 亚洲av成人无码网站…| 久久久久久A亚洲欧洲AV冫| 亚洲电影在线免费观看| 日韩大片在线永久免费观看网站| 婷婷亚洲综合五月天小说| 四虎成人免费网站在线| 免费观看在线禁片| 精品亚洲福利一区二区| 亚洲色图在线播放| 亚洲成人影院在线观看| 免费在线看v网址| 国产综合免费精品久久久 | 久久国产免费一区二区三区| 亚洲av无码专区国产不乱码| 亚洲AV乱码一区二区三区林ゆな| 国产男女猛烈无遮挡免费视频网站 | 精品国产亚洲第一区二区三区| 亚洲欧洲在线观看| 亚洲天堂在线视频| 精品国产麻豆免费网站| 99re免费99re在线视频手机版| 女人裸身j部免费视频无遮挡| 久久精品国产亚洲αv忘忧草| 日韩亚洲欧洲在线com91tv| 免费人成网站7777视频| 好男人看视频免费2019中文| 一区二区三区观看免费中文视频在线播放 | 亚洲色图黄色小说| 亚洲乱码国产一区三区| 亚洲国产av无码精品| 四虎成人免费网址在线| 日韩吃奶摸下AA片免费观看| 三年片在线观看免费大全电影 | 免费A级毛片无码A|