0

我正在尝试编写一个压力测试程序来抨击我们的网络服务器。我正在尝试使用线程来模拟多个人打服务器。但是,我遇到的问题是 99.9% 的时间使用 1 个线程。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 回答