1

私は現在、Amazon の EC2 サービスで分散負荷テストを行っている最中であり、機能させる方法に関するすべてのドキュメント/フォーラム/サポートに熱心に従っていますが、残念ながらこの時点で立ち往生しています。関連するIRCの誰もこれに答えることができませんでした...

これが私が見ているものです:

コントローラー自体で単純に実行する場合、Tsung を完全に正常に動作させることができるポイントにいますが、オプションを使用します。

FROM tsung.xml
 <client host="tester0" weight="8" maxusers="10000" cpu="4"/>

また、より高い/より低いCPU値で動作します。

また、次を使用してローカルで簡単に動作させることもできます。

use_controller_vm="true"

しかし、希望するスループットを得ることができないため、これは今では役に立ちません。

物事を機能させるために、sshキーをインストールしました。私はこれらのサーバーのすべてのポートを開いています [0 - 65535 ]、まったく同じバージョンの Tsung、Erlang を使用しています。サーバー上のすべてのものは実際には同じです (これらは互いのイメージです)。

Tsung バージョン 1.4.2 Erlang R15B01 Ubuntu 12.04LTS 同じ EC2 セキュリティ グループ (すべてのポートが開いている - TCP と UPD の両方が開き、iptables または SELinux はありません) 同じ EC2 アベイラビリティ ゾーン

tsung を起動すると、上記のように tester0 に送信するだけで機能し、ts_config_server は newbeam を次のように起動します。

ts_config_server:(6:<0.84.0>) starting newbeam on host tester0 with Args " -rsh ssh -detached -setcookie  tsung   -smp disable    +A 16 +P 250000  -kernel inet_dist_listen_min 64000  -kernel inet_dist_listen_max 65500  -boot /usr/lib/erlang//lib/tsung-1.4.2/priv/tsung -boot_var TSUNGPATH /usr/lib/erlang/ -pa /usr/lib/erlang//lib/tsung-1.4.2/ebin -pa /usr/lib/erlang//lib/tsung_controller-1.4.2/ebin +K true  -tsung debug_level 7 -tsung log_file ts_encoded_47home_47ubuntu_47_46tsung_47log_4720120719_451751"

ただし、リモートサーバーでこれを実行しようとすると、テスト全体が失敗し、ユーザーがゼロになります。

<client host="tester1" weight="8" maxusers="10000" cpu="1"/>

ts_config_server:(6:<0.84.0>) starting newbeam on host tester1 with Args " -rsh ssh -detached -setcookie  tsung   -smp disable    +A 16 +P 250000  -kernel inet_dist_listen_min 64000  -kernel inet_dist_listen_max 65500  -boot /usr/lib/erlang//lib/tsung-1.4.2/priv/tsung -boot_var TSUNGPATH /usr/lib/erlang/ -pa /usr/lib/erlang//lib/tsung-1.4.2/ebin -pa /usr/lib/erlang//lib/tsung_controller-1.4.2/ebin +K true  -tsung debug_level 7 -tsung log_file ts_encoded_47home_47ubuntu_47_46tsung_47log_4720120719_451924"

ただし、2つのクライアントで実行しようとすると(つまり、以下のように):

<client host="tester0" weight="8" maxusers="10000" cpu="1"/>
<client host="tester1" weight="8" maxusers="10000" cpu="1"/>

Web サーバーにヒットするユーザーがゼロになりました。理由はわかりませんが、これは私にはまったく直感的ではありません。

ts_config_server:(6:<0.84.0>) starting newbeam on host tester1 with Args " -rsh ssh -detached -setcookie  tsung   -smp disable    +A 16 +P 250000  -kernel inet_dist_listen_min 64000  -kernel inet_dist_listen_max 65500  -boot /usr/lib/erlang//lib/tsung-1.4.2/priv/tsung -boot_var TSUNGPATH /usr/lib/erlang/ -pa /usr/lib/erlang//lib/tsung-1.4.2/ebin -pa /usr/lib/erlang//lib/tsung_controller-1.4.2/ebin +K true  -tsung debug_level 7 -tsung log_file ts_encoded_47home_47ubuntu_47_46tsung_47log_4720120719_451751"
ts_config_server:(6:<0.85.0>) starting newbeam on host tester0 with Args " -rsh ssh -detached -setcookie  tsung   -smp disable    +A 16 +P 250000  -kernel inet_dist_listen_min 64000  -kernel inet_dist_listen_max 65500  -boot /usr/lib/erlang//lib/tsung-1.4.2/priv/tsung -boot_var TSUNGPATH /usr/lib/erlang/ -pa /usr/lib/erlang//lib/tsung-1.4.2/ebin -pa /usr/lib/erlang//lib/tsung_controller-1.4.2/ebin +K true  -tsung debug_level 7 -tsung log_file ts_encoded_47home_47ubuntu_47_46tsung_47log_4720120719_451751"

私が気づいたことの 1 つは、slave:start に渡されるすべての引数のうち、存在しないのは 1 つだけであり、それは -boot ディレクティブに続くものです。

/usr/lib/erlang//lib/tsung-1.4.2/priv/tsung

むしろ、そのディレクトリには次のファイルしかありません。

:~$ ls /usr/lib/erlang//lib/tsung-1.4.2/priv
tsung.boot                    tsung_controller.rel     tsung_recorder.boot         tsung_recorder.script
tsung_controller.boot         tsung_controller.script  tsung_recorder_load.boot    tsung.rel
tsung_controller_load.boot    tsung_load.boot          tsung_recorder_load.script  tsung.script
tsung_controller_load.script  tsung_load.script        tsung_recorder.rel    

私が実際に試した最後のことは、slave:start を試行したときに ssh セッションで何が起こっているかをログに記録することですが、結果が得られません。私は実行してこれを行いました:

erl -rsh ssh -sname tsung -r ssh_log_me 

ssh_log_me の場所:

#!/bin/sh

echo "$0" "$@" > /tmp/my-ssh.log
ssh -v "$@"  2>&1 | tee -a /tmp/my-ssh.log

しかし、実行しても出力が得られません:

(tsung@tester0)1> slave:start_link(tester1, tsung, " -rsh ssh -detached -setcookie  tsung   -smp disable    +A 16 +P 250000  -kernel inet_dist_listen_min 64000  -kernel inet_dist_listen_max 65500  -boot /usr/lib/erlang//lib/tsung-1.4.2/priv/tsung -boot_var TSUNGPATH /usr/lib/erlang/ -pa /usr/lib/erlang//lib/tsung-1.4.2/ebin -pa /usr/lib/erlang//lib/tsung_controller-1.4.2/ebin +K true  -tsung debug_level 7 -tsung log_file ts_encoded_47home_47ubuntu_47_46tsung_47log_4720120719_451751").
{error,timeout}

erlang の -boot ディレクティブと実際の erlang コード (ts_config_server 用) を調べましたが、この時点で少し迷っており、最後の情報が 1 つ欠けているだけかもしれません。

ここで私の xml ファイルを見てください: http://pastebin.com/2MEbL6gd

4

2 に答える 2

0

ssh キーの検証が無効になっていることを確認します ~/.ssh/config Host * StrictHostKeyChecking no UserKnownHostsFile=/dev/null

コントローラーとワーカーノード間ですべてのポートにアクセスできることを確認してください。クラウド内にある場合は、ファイアウォールまたはセキュリティ グループがすべてのポートを許可していることを確認してください。3.Erlang、Tsung は同じバージョンでなければなりません。

4.すべてのマシンが相互に到達可能であることを確認します

5.erlang テストを実行する

erl -rsh ssh -name subbu -setcookie tsung Erlang R16B03-1 (erts-5.10.4) [ソース] [64 ビット] [smp:2:2] [async-threads:10] [hipe] [kernel-poll :間違い]

Eshell V5.10.4 (^G で中止) (daya@ip-10-0-100-224.ec2.internal)1> slave:start("worker1.com",bar,"-setcookie tsung").

警告: 'worker1,10.0.100.225' (ECDSA) が既知のホストのリストに永久に追加されました。{わかりました、bar@worker1}

コントローラーからすべてのワーカー ノードに対してこのテストを実行します。

問題なくテストを実行できるはずです。

幸運を!

サブブ

于 2016-12-21T21:53:23.017 に答える
0

git の最新バージョンを使用して再コンパイルしたところ、動作しました --- インストールした deb パッケージでは動作しなかったのは奇妙です...

お見せします - 不明な場合はソースからコンパイルしてください!

于 2012-07-20T18:36:18.960 に答える