我的性能测试在WebLogic和在某些时候的表现开始恶化,我看到所有被服务的HTTP请求的线程都停留在这个代码线程挂在选择通道
sun.nio.ch.DevPollArrayWrapper.poll0(Native Method)
sun.nio.ch.DevPollArrayWrapper.poll(DevPollArrayWrapper.java:223)
sun.nio.ch.DevPollSelectorImpl.doSelect(DevPollSelectorImpl.java:84)
sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
weblogic.socket.NIOSocketMuxer$NIOOutputStream.writeInternal(NIOSocketMuxer.java:1090)
weblogic.socket.NIOSocketMuxer$NIOOutputStream.write(NIOSocketMuxer.java:983)
weblogic.socket.JSSEFilterImpl.writeToNetwork(JSSEFilterImpl.java:773)
weblogic.socket.JSSEFilterImpl.wrapAndWrite(JSSEFilterImpl.java:734)
我相信一个应用程序以上意味着WebLogic没有足够的通道来发送响应,但我不确定哪些设置与此相关。我检查了操作系统上的文件限制,并将其设置为无限制。我不知道还有什么我需要检查。有任何想法吗?代码在运行SunOS的Solaris机器上运行。
编辑:线程池已配置为使用最少250个线程进行初始化,并且可以增长到400个线程。在这个问题上,我们有250个线程,其中只有60个正在服务请求。
发布一些相关的代码,你如何配置线程池和所有。 –
您正在看到一台为网络提供网络流量的网络服务器。你想要解决什么具体问题? –
这是堆栈跟踪的顶部。你是否认为这意味着它正在进行实际传输? – Farzad