【发布时间】:2015-01-04 15:32:30
【问题描述】:
我正在尝试使用 Apache Bench 对一组大型(每个 4MB)JSON 请求进行负载测试。使用大文件和许多并发请求运行时,出现以下错误:
在 RequestBodyHandler java.nio.channels.ClosedChannelException 中捕获的异常:null
这是我的 ab 命令:
ab -p large.json -n 1000 -c 10 http://127.0.0.1:9000/json-tests
如果我在没有并发的情况下运行它并且只有 10 个请求,它可以正常工作。增加请求数或并发数会导致此错误反复发生。
我的控制器目前没有逻辑:
def addJsonTest = Action {
Ok("OK")
}
这是完整的错误:
[error] play - RequestBodyHandler 中捕获的异常 java.nio.channels.ClosedChannelException: null 在 org.jboss.netty.channel.socket.nio.AbstractNioWorker.setInterestOps(AbstractNioWorker.java:506) [netty-3.9.3.Final.jar:na] 在 org.jboss.netty.channel.socket.nio.AbstractNioWorker$1.run(AbstractNioWorker.java:455) [netty-3.9.3.Final.jar:na] 在 org.jboss.netty.channel.socket.ChannelRunnableWrapper.run(ChannelRunnableWrapper.java:40) [netty-3.9.3.Final.jar:na] 在 org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:372) [netty-3.9.3.Final.jar:na] 在 org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:296) [netty-3.9.3.Final.jar:na]
这只是在开发模式下使用 Play,是否有任何设置或配置让 Play 处理多个大型请求?
谢谢!
【问题讨论】:
标签: json scala benchmarking playframework-2.2 apachebench