日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

流量复制_详解Linux系统流量复制--gor、tcpcopy、nginx模块流量复制等

發布時間:2023/12/2 linux 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 流量复制_详解Linux系统流量复制--gor、tcpcopy、nginx模块流量复制等 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

對于一些有并發要求的業務,特別是對接外部流量時,產品上線前一定要做的就是壓力測試,但是常規的壓力測試并不能覆蓋所有情況。以gemeter、ab,、webbench、http_load為例,這些通過模擬請求的壓測工具,只能發送特定的參數,對于一些參數異常導致的程序處理異常是無法考慮到的,所以就需要一款能復制真實流量,并且不影響線上業務的工具。

流量復制工具有很多,例如Gor、tcpreplay、tcpcopy等,這些工具貼合真實場景,能模擬真實流量,并支持流量的放大或縮小,更容易測試出程序的瓶頸和潛在問題。

幾款流量復制工具:

  • gor: https://github.com/buger/goreplay
  • tcpreplay: https://github.com/appneta/tcpreplay
  • tcpcopy: https://github.com/session-replay-tools/tcpcopy
  • Nginx模塊ngx_http_mirror_module,在Nginx 1.13.4中開始引入

下面重點介紹nginx模塊ngx_http_mirror_module和gor。


流量復制--Nginx模塊ngx_http_mirror_module

參考配置

配置如下:

server { listen 8080; access_log /home/work/log/nginx/org.log; root html/org;}server { listen 8081; access_log /home/work/log/nginx/mir.log ; root html/mir;}upstream backend { server 127.0.0.1:8080;}upstream test_backend { server 127.0.0.1:8081;}server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { mirror /mirror; proxy_pass http://backend; } location /mirror { internal; proxy_pass http://test_backend$request_uri; }}

流量放大,配置兩個mirror即可

location / { mirror /mirror; mirror /mirror; proxy_pass http://backend; }

使用是很方便,但是線上nginx一般都承載了不止一個業務,修改nginx配置后需要nginx -s reload來使之生效,這種操作在線上還是盡量需要避免的。


流量復制--gor

Gor 是用 Golang 寫的一個 HTTP 實時流量復制工具。功能更強大,支持流量的放大、縮小,頻率限制,還支持把請求記錄到文件,方便回放和分析,也支持和 ElasticSearch 集成,將流量存入 ES 進行實時分析。

1、下載安裝

只需要下載安裝,也可以下載編譯好的二進制文件直接使用

#wget https://github.com/buger/goreplay/releases/download/v0.16.1/gor_0.16.1_x64.tar.gz#tar xzvf gor_0.16.1_x64.tar.gz

2、流量復制

gor也可以將流量復制到文件,然后再對他們進行回放。回放的時候,流量會維持原始的時間間隔。如果使用了百分比來進行速率限制,那么回放的速率會相應的增加或減少。有了這種速率限制,gor就可以用來進行壓力測試。

#write to filegor --input-raw :80 --output-file requests_origin.gor#read from filegor --input-file requests_origin.gor --output-http "http://localhost:8081"

3、流量回放

目前,這種方式只支持"input-file

總結

以上是生活随笔為你收集整理的流量复制_详解Linux系统流量复制--gor、tcpcopy、nginx模块流量复制等的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。