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.blogjava.net/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用戶壓測,那就錯了,只要機器資源夠,這個目標就很容易實現。我們更應該關注,我們壓測的目的是什麼,我們應該關注什麼,這個應該形成一個完整可循環過程,驅動着系統架構健康先前發展。

轉自:http://www.blogjava.net/yongboy/category/55089.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章