我在 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
}
}
}
}