私は現在、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