容量測試之tcpcopy引流模式

tcpcopy 給用戶提供了很多命令參數來修改引流的模式和設置,詳細可以查閱手冊。在這裏把幾種常見的引流方式做個歸納小結,以tcpcopy傳統架構使用命令舉例。

  1.分佈式引流
  
用法:Tcpcopy可以通過-x參數實現將多臺服務器的請求複製到同一臺測試服務器上面去,-x參數常用於分佈式引流的場合,可以從多節點進行引流複製。

  ./tcpcopy -x 8001- 192.168.1.1:8080
  ./tcpcopy -x 8001- 192.168.1.1:8080 -f 1
  ./tcpcopy -x 8001- 192.168.1.1 8080 -f 2

適用場景:將線上一個集羣的壓力複製到測試服務器,適用於線上集羣單節點壓力小的情況,可以通過這種方式儘量覆蓋線上所有的請求,這種方式常被用於容量規劃之線上壓測方式中的一種。

  2.分層引流
  
對於一個複雜的線上系統,提供多種業務如圖片、存儲等,各種業務壓力是不均衡的,如果在系統的最前端入口進行復制引流到測試環境,那麼部分功能模塊的壓力將會很大,而部分功能模塊的壓力很小壓不到上限,這時候分層引流就可以解決這樣的問題,在系統架構每一層進行引流複製壓測,儘量覆蓋多的節點。

  3.離線回放
  
用法:離線回放模式需要再configure 的時候加上–enable-offline 參數,離線回放還需要安裝pcap 庫和pcap 開發庫(需要用到pcap 庫的頭文件)另外運行的時候需要指定-i 參數。
  

./tcpcopy -x 8001- 192.168.1.1:8080 -i ./online.pcap

這裏oline.pcap(利用類似於tcpdump 的工具來抓請求數據包,存放到pcap 格式的文件中去)文件作爲數據源,把請求轉發到測試服務器上。此外增加-a參數對請求數據包的訪問進行加速
  

./tcpcopy -x 8001- 192.168.1.1:8080 -a 2 -i online.pcap

假設online.pcap 文件爲在線請求數據包的抓包文件,時間間隔爲60 分鐘執行此命令後,離線回放加速了2 倍,只需要30 分鐘離線回放就能完成,-a 參數設置不宜設置過大,越大丟請求的概率也越大。

適用場景:由於離線方式依賴於抓包工具(如tcpdump),而抓包工具在壓力比較大的場合一般丟包非常嚴重,而且還會嚴重影響在線IO,因此一般不推薦在高壓情況下使用離線回放方式。

  4.部分引流
  
用法:Tcpcopy可以通過-r參數實現在線服務器應用的部分流量複製,參數範圍是1~99,其它值都是全流量複製。-r 參數常用於測試服務器配置不如在線服務器的場合。
  

./tcpcopy -x 8001- 192.168.1.1:8080 -r 20

這裏tcpcopy 複製在線服務器8001 端口應用的20%流量給測試服務器,這裏的20%是根據session(這裏session 是由客戶端IP,客戶端端口決定)來統計的。

適用場景:部分引流主要適用於線上請求壓力很多,而測試環境的處理能力較弱,這時候就只需複製部分線上的請求到測試環境,就可以壓到測試環境的極限。

  5.放大引流
  
用法:Tcpcopy可以通過-n參數對在線服務器應用的流量進行復制放到到測試服務器,如果你要進行多重複制,-n參數
  

./tcpcopy -x 8001- 192.168.1.1:8080 -n 3

表示複製3 倍的在線服務器的8001 端口應用請求流量到192.168.1.1 的8080 端口。

適用場景:放大引流主要用於線上壓力較小時,想要通過無限構造壓力通過成倍引流達到對測試服務器進行壓力測試的目的。

發佈了60 篇原創文章 · 獲贊 71 · 訪問量 1450萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章