TCPcopy使用示例

2021-07-10 03:39:45 字數 1361 閱讀 9825

最近在公司弄乙個頻繁gc的問題,以下是我提的第乙個建議,但公司環境不允許這樣實行(生產環境管理及其嚴格,而且涉及呼叫其他服務的問題),現記錄如下。

tcpcopy最開始是網易開發的用於廣告投放系統的乙個測試工具,能夠進行分布式壓力測試,普通上線測試,流量放大測試等,其測試資料比較真實。

下面以圖形說明tcpcopy的原理

1.下圖是乙個典型的web應用伺服器的示例,使用者請求過來後,達到web應用,web應用處理完請求後,通過網路傳輸給請求發起者。

由於生產環境的限制比較嚴格,不能在生產環境下進行有效測試和獲取足夠的執行資料,在測試環境下能夠獲取更多的資料,但測試環境中的資料不夠真實,難以復現生產環境下出現的各種問題。tcpcopy打通了生產環境和測試環境之間的通道。下圖是加入了tcpcopy的生產伺服器和測試伺服器:

使用tcpcopy時,首先需要在生產伺服器上安裝tcpcopyclient,然後在測試伺服器上安裝tcpcopyserver。

2.      使用者請求到達線上前端機,

3.      socket包在ip層被拷貝了乙份,傳給tcpcopy程序,

4.      tcpcopy修改包的目的及源位址,發給測試前端機

5.      測試前端機接收資料報,處理請求,並返回結果

6.      返回結果在ip層被攔截、丟棄, tcpcopyserver拷貝返回資料報的ip header返回

7.      ip header被傳送給線上前端機的tcpcopy程序。

假設有兩台機器:

機器a:線上前端機,ip:192.168.1.100;

機器b:測試前端機,ip:192.168.1.200;

在兩台機器上都有sudo許可權

1.       在b依次執行:

a)        modprobe ip_queue   載入ip_queue模組

b)        sudo iptables –t filter –loutput –p tcp –sport 80 –j queue     配置iptables規則

c)        sudo ./interception&     啟動tcpcopy伺服器

2.       在a上執行:

a)        sudo ./tcpcopy 192.168.1.100 80192.168.1.200 80 &    啟動tcpcopy客戶端

如果在a上看到」i am booted」,則表示操作成功,tcpcopy已經開始工作。

TCPCopy的安裝和使用

官網位址 tcpcopy 有傳統架構和新架構,新架構比較複雜,一般情況下傳統架構就可以了。頭部資訊給tcpcopy client,以完成tcp互動,不然tcp包就不能算到達對端。安裝 tar zxvf tcpcopy 0.9.0 tar.gz cd tcpcopy 0.9.0 configure m...

tcpcopy1 0系列使用方法

新舊架構詳細對比 tcpcopy執行需要intercept的支援,tcpcopy負責抓包和發包工作,而intercept負責截獲應答包 git clone configure configure 預設raw socket方式抓包 或者.configure pcap capture pcap方式抓包,...

tcpcopy1 0系列使用方法

新舊架構詳細對比 tcpcopy執行需要intercept的支援,tcpcopy負責抓包和發包工作,而intercept負責截獲應答包 git clone configure configure 預設raw socket方式抓包 或者.configure pcap capture pcap方式抓包,...