1

我在 play 2.0.4 上运行一个 Web 应用程序,现在它处于性能测试阶段。
要求是 1000 个用户/小时登录 Web 应用程序。

目前我正面临通过 Jmeter 作为 perf 工具在系统中引入的仅 100 个线程的问题。
每次我运行 100 个线程时,Jmeter 上的采样器都会出现 20-25 个 http 失败。
在播放日志中我看到了AskTimeout。此外,在播放日志中,http 失败的次数不等于 Ask Timeout 的次数。

Jmeter Sampler error-
HTTP/1.1 500 Internal Server Error
Content-Length: 0

播放日志:

2013-04-07 09:49:08,740 错误 [play-akka.actor.promises-dispatcher-493] 播放:无法调用操作,最终出现错误:抛出(akka.pattern.AskTimeoutException:超时)

请参阅下面的 akka 配置以获取 50 个 Jmeter 线程(成功运行)。

如何为 100 个线程进一步调整它,以便我看不到 AskTimeout 异常?

play {

    akka {
        event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
        loglevel = INFO

        actor {

            deployment {

                /actions {
                    router = round-robin
                    nr-of-instances = 1000
                }

               /promises {
                    router = round-robin
                    nr-of-instances = 1000
                }
              }

            retrieveBodyParserTimeout = 5 second

            actions-dispatcher = {
                fork-join-executor {
                    parallelism-factor = 100
                    parallelism-max = 200
                 }
                throughput = 100
                mailbox-capacity = 100
                mailbox-type =""
            }

            promises-dispatcher = {
                fork-join-executor {
                   parallelism-factor = 4
                  parallelism-max = 100
             }
                throughput = 100
                }

           websockets-dispatcher = {
              fork-join-executor {
                 parallelism-factor = 2.0
                parallelism-max = 100
           }
                throughput = 100
           }

          default-dispatcher = {
             fork-join-executor {
                parallelism-factor = 2.0
               parallelism-max = 100
             }
                throughput = 100
           }

        }

    }

}
4

0 回答 0