2015-07-03 34 views
-1

我的性能測試在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個正在服務請求。

+0

發佈一些相關的代碼,你如何配置線程池和所有。 –

+0

您正在看到一臺爲網絡提供網絡流量的網絡服務器。你想要解決什麼具體問題? –

+0

這是堆棧跟蹤的頂部。你是否認爲這意味着它正在進行實際傳輸? – Farzad

回答

0

線程上選擇通道

我相信上述表示的WebLogic沒有足夠的通道來響應發送回

號掛

這是one線程阻止選擇網絡事件並且它表示沒有傳入數據,套接字發送緩衝區中沒有空間等,具體取決於正在選擇的事件。

在這種情況下,它是通過進一步向下寫入堆棧來調用的,這表明套接字發送緩衝區中沒有空間,這表示對等體讀取速度慢。

在這方面你無能爲力。

+0

感謝您的解釋 – Farzad