如何在wildfly 10.0.0中控制I / O Dispatcher线程的创建?

时间:2018-06-12 21:13:46

标签: jboss wildfly wildfly-10 undertow grequests

我有一个运行应用程序的wildfly服务器(版本10.0.0)。我还有一个python库,使用grequest对此应用程序进行负载测试。当我运行测试时,我可以看到数以千计的I / O调度程序线程正在创建,并且正在打开数十万个文件句柄。即使在脚本关闭后,这些线程也会挂起。最终我开始看到创建更多套接字连接或打开文件的问题,并且该过程也耗尽了内存。

虽然可能在python脚本端没有完成某些事情(可能有读取响应或关闭连接)但我的问题是为什么在第一个创建了如此多的I / O调度程序线程地点。默认没有限制吗?有没有办法在线程池上配置限制?

以下是I / O调度程序线程堆栈的示例

    I/O dispatcher 14981" #1545291 prio=5 os_prio=0 tid=0x00007fdb7c039000 nid=0x5475 runnable [0x00007fdadaaab000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
        at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
        at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
        - locked <0x00000001c1001860> (a sun.nio.ch.Util$3)
        - locked <0x00000001c1001850> (a java.util.Collections$UnmodifiableSet)
        - locked <0x00000001c1001808> (a sun.nio.ch.EPollSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:255)
        at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
        at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
        at java.lang.Thread.run(Thread.java:748)

0 个答案:

没有答案