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) 編輯 收藏 所屬分類: 壓測