0

Web サーバーをバッシングするストレス テスト プログラムを作成しようとしています。スレッドを使用して、複数の人がサーバーにアクセスすることをシミュレートしようとしています。ただし、私が直面している問題は、1 つのスレッドを使用すると 99.9% の確率で動作することです。2 つのスレッドが 10 ~ 20% の確率で動作しているように見え、それ以上のスレッドは常に失敗しているようです。

テスト用のスレッドを生成しようとしている実行中のコードのスニペットを次に示します。

    public static final MAX = 1; // (or 2, or 100 while testing)
    <snip>
    <snip>

    String newParams = "{ bunch, of, test, parameters }";
    Callable<String> call1;
    ExecutorService pool = Executors.newFixedThreadPool(10);
    Future<String> f1;

    for (int i = 0; i < MAX; i++) {
    //      newParams = newParams + slight changes each iteration for each thread;
        call1 = new HttpPostClass.HttpPost(url, newParams);
        f1 = pool.submit(call1);
    }
    pool.shutdown();

ループ内で同じ Callable/Future オブジェクトを再利用しているためなのか、それともマルチスレッド プログラミングに関する自分の無知/経験不足が原因なのかはわかりません。

皆さんが私に与えることができる助けを前もって感謝します。

4

1 に答える 1

0

Web サーバーの負荷テストを行う場合は、シンプルだが強力な ab を参照してください: http://httpd.apache.org/docs/2.2/programs/ab.html

于 2013-01-09T04:30:48.450 に答える