我们正在使用Play Framework在休息服务器上运行重负载测试(jmeter:350个线程,总共35M请求),并在~2小时后遇到以下错误。我们删除其他组件,以便请求只接受请求而不执行任何操作。任何人都有任何想法,或者只是Play Framework无法处理这样的重载?
2014/07/05 11:59:38 WARN - com.company.test.RestTest2: Run TestSQL throw error java.lang.Exception: com.sun.jersey.api.client.ClientHandlerException: java.net.SocketTimeoutException: Read timed out
at com.company.dispatcher.RexsterRESTTaskDispatcher.dispatchTask(RexsterRESTTaskDispatcher.java:76)
at com.company.test.RestTest2.runTest(RestTest2.java:375)
at org.apache.jmeter.protocol.java.sampler.JavaSampler.sample(JavaSampler.java:191)
at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:429)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257)
at java.lang.Thread.run(Thread.java:744)
application.conf的一部分: ....
db.pool.timeout=100000
play {
akka {
akka.loggers = ["akka.event.Logging$DefaultLogger", "akka.event.slf4j.Slf4jLogger"]
loglevel = WARNING
actor {
default-dispatcher = {
fork-join-executor {
parallelism-factor = 64
parallelism-max = 1000
}
}
}
}
}
答案 0 :(得分:-1)
有很多事情需要检查:
您是否在同一台机器上运行测试?如果是的话,这是一个问题
您的计算机是否已调整TCP堆栈?
只要您的机器内存,CPU,您的JVM配置是什么?
您的测试结果如何?你能展示一个展开所有元素的截图吗?
我认为Play / AKKA可以毫无问题地处理这个负载,所以我会研究配置问题。