TCPCopyの使い方
6016 ワード
ネットワーク技術
転載する
王斌
2013-03-12 10:35
今週はストレステストの仕事で、TCPCopyを使って、とても良いツールです.
TCPCopyは、オンライントラフィックをテストシステムにインポートするためのレプリケーション(tcpベースのすべてのpackets)を要求するツールです.リアル、リアルタイム、低負荷、分散などの特徴があります.
TCPCopy七大機能:
使用方法は次のとおりです.
TCPCopy server
# modprobe ip_queue # ip_queue
# iptables -I OUTPUT -p tcp --sport <port> -j QUEUE # , output
# ./intercept
注:ip_を起動した場合Queueとiptablesが設定されており、3番目の項目を実行するだけです.テストが終わったら、上記の設定したiptablesエントリを削除することを忘れないでください.
TCPCopy client
# ./tcpcopy -x <online server app port>-<test server ip>:<test server app port>
1.2.3.25、1.2.3.26はオンラインアプリケーションサーバ、1.2.3.161はテストサーバ、オンラインアプリケーションポートは11311、テストサーバのアプリケーションポートは11511と仮定します.私たちの目的は1.2.3.161テストサーバが現在の2台のオンラインの圧力に耐えられるかどうかを確認することです.
TCPCopyを使用してテストを行います.
ターゲットテストサーバ(1.2.3.161)
# modprobe ip_queue
# iptables -I OUTPUT -p tcp --sport 11511 -j QUEUE
# ./intercept
オンラインサーバ(1.2.3.25)
# ./tcpcopy -x 11311-1.2.3.161:11511
オンラインサーバ(1.2.3.26)
# ./tcpcopy -x 11311-1.2.3.161:11511
1.2.3.25:
21158 appuser 15 0 271m 226m 756 S 24.2 0.9 16410:57 asyn_server
9168 root 15 0 18436 12m 380 S 8.9 0.1 40:59.15 tcpcopy
1.2.3.26:
16708 appuser 15 0 268m 225m 756 S 25.8 0.9 17066:19 asyn_server
11662 root 15 0 17048 10m 372 S 9.3 0.0 53:51.49 tcpcopy
1.2.3.161:
27954 root 15 0 284m 57m 828 S 58.6 1.4 409:18.94 asyn_server
1476 root 15 0 14784 11m 308 S 7.7 0.3 49:36.93 intercept
1.2.3.25:
$ wc -l access_1109_09.log
7867867, 2185 reqs/sec
1.2.3.26:
$ wc -l access_1109_09.log
7843259, 2178 reqs/sec
1.2.3.161:
$ wc -l access_1109_09.log
15705229, 4362 reqs/sec
要求損失率:(7867867+7843259-15705229)/(7867867+7843259)=0.0375%
1.2.3.161テストサーバは、現在のオンライン圧力の2倍に耐えられることがわかります.
負荷状況を見ると、tcpcopy自体の負荷は8.9%と9.3%、interceptは7.7%で、負荷から見ると、いずれも高くなく、メモリも多くありません.
注意事項:
詳細については、「https://github.com/downloads/wangbin579/tcpcopy/TCPCopy_0.6.5_Manual.pdf」を参照してください.
ソース:
http://code.google.com/p/tcpcopy/
リンク:
http://www.yeolar.com/note/2013/03/12/tcpcopy/