聶永的博客

          記錄工作/學習的點點滴滴。

          Tsung筆記之100萬用戶壓測執行步驟篇

          前言

          總是說細節、理論,會讓人不勝其煩。我們使用Tsung來一次100萬用戶壓測的吧,或許能夠引起好多人的興趣 :))

          下面,我根據在公司分享的PPT《分布式百萬用戶壓測你的業務》,貼出其中的關鍵部分,說明進行一次100W(即1M)用戶壓測的執行步驟。

          如何做分布式百萬用戶的壓測 ?

          假定面向小白用戶,因此才有了下面可執行的10個步驟用于開展分布式百萬用戶。

          ?

          看著步驟很多,一旦熟悉并掌握之后,中間可以省卻若干。

          1. 閱讀Tsung文檔

          ?

          建議大家在使用Tsung之前,花費一點時間閱讀完整個用戶手冊,雖然是英文的,閱讀起來也不復雜。讀完之后,我們也就知道如何做測試了,遇到的大部分問題,也能夠在里面找到答案。

          2 確定壓測目標

          ?

          • 要對線上系統壓測100萬用戶,為了盡可能降低線上服務器負載壓力,這里設置每秒產生500個用戶,將在60分鐘內產生完畢
          • 要壓測的服務器所填寫網絡訪問地址可以根據需要填寫多個

          3. 計算所需要從機數量

          ?
          ?
          ?
          ?
          ?
          ?

          • Tsung為主從模型,我們啟動了主節點之后,主節點會按需啟動從節點
          • 設定所用服務器可用內存大于3G,并且都只有一個IP地址
          • 一臺從機可用模擬6萬用戶,需要17臺從機
          • 若資源充足,可以少用幾臺服務器,配置多個IP地址
          • 找到所需要的壓測用服務器,在資源層面滿足測試測試集群需要,這個是關鍵

          4. 部署Tsung

          ?

          因為Tsung依賴于Erlang,因此需要首先安裝:

          wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
          rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
          sudo yum install erlang
          

          然后再是安裝Tsung,建議直接使用Tsung 1.6.0修改版,主要提供IP只連支持(具體細節,可參考這里 http://www.aygfsteel.com/yongboy/archive/2016/07/28/431354.html ):

          git clone https://github.com/weibomobile/tsung-1.6.0.git
          ./configure --prefix=/usr/local
          make install
          

          5. 下載SSH替代者-tsung—rsh

          ?

          為什么要替換掉SSH,主要原因:

          • SSH在一般網絡機房環境內服務器之間被禁止連接通信,這會導致主節點無法啟動從節點,無法建立分布式壓測集群
          • 就算是SSH沒被禁用,主從之間需要設置免秘鑰SSH登錄方式,十分麻煩

          可進一步參考:Tsung筆記之分布式增強跳出SSH羈絆篇

          6. 編寫壓測內容

          ?
          ?
          ?

          要把業務定義的所有會話內容完整的整理映射成Tsung的會話內容,因為用戶行為很復雜,也需要我們想法設法去模擬。

          其實,演示所使用的是私有協議,可以參考 Tsung筆記之插件編寫篇

          當完成壓測會話內容之后,users_100w.xml文件已經填寫完畢,我們可以開始壓測了。

          7. 運行Tsung

          ?

          • -F 10.10.10.10 主節點IP地址,IP直連特性
          • -rsh rsh_client.sh 遠程終端,SSH通道被替換
          • -s 壓測端啟用erlang smp特性,按需使用所有CPU核心

          我們啟動了從節點,然后從節點被啟動,開始執行具體壓測任務了。

          8. 壓測過程中,我們該做什么

          ?

          緊密關注服務器服務狀態、資源占用等情況就對了,最好還要作為一個終端用戶參與到產品體驗中去。

          9. 壓測結束,生成Tsung報表

          ?

          Tsung壓測結束之后,不會主動生成壓測結果報表的,需要借助于 tsung_stats.pl perl腳本生成,要查閱可借助python生成臨Web站點,瀏覽器打開即可。

          10. 回顧和總結

          ?

          小結

          其實,一旦熟悉并掌握Tsung之后,步驟1-6都可以節省了,循環執行步驟7-10。

          你若以為僅僅只是談論Tsung如何做1M用戶壓測,那就錯了,只要機器資源夠,這個目標就很容易實現。我們更應該關注,我們壓測的目的是什么,我們應該關注什么,這個應該形成一個完整可循環過程,驅動著系統架構健康先前發展。

          posted on 2016-08-08 21:31 nieyong 閱讀(11109) 評論(1)  編輯  收藏 所屬分類: 壓測

          評論

          # re: Tsung筆記之100萬用戶壓測執行步驟篇 2018-01-17 16:51 novaboy

          問下, 這個TPS是怎么算的。
          還有,tsung有沒有并發用戶數限制。  回復  更多評論   

          公告

          所有文章皆為原創,若轉載請標明出處,謝謝~

          新浪微博,歡迎關注:

          導航

          <2018年1月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          統計

          常用鏈接

          留言簿(58)

          隨筆分類(130)

          隨筆檔案(151)

          個人收藏

          最新隨筆

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 贵溪市| 甘肃省| 镇江市| 郸城县| 广州市| 农安县| 保山市| 张家川| 全州县| 霍城县| 错那县| 鄂托克前旗| 乌拉特前旗| 渭南市| 莎车县| 宁夏| 荥阳市| 潼关县| 洱源县| 三亚市| 思茅市| 徐闻县| 虹口区| 河津市| 景宁| 遵义县| 遂昌县| 康乐县| 井研县| 永丰县| 永登县| 民权县| 巨鹿县| 洞口县| 镇沅| 浦东新区| 万州区| 杂多县| 永年县| 徐水县| 齐齐哈尔市|