gpt4 book ai didi

java - weblogic.socket.Muxer 使用 100% cpu

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:53 29 4
gpt4 key购买 nike

我们最近开始体验使用 weblogic.Deployer 实用程序在 Weblogic 12c 中进行部署。我们可以很好地部署 EAR,但每当我们尝试在托管服务器仍在运行的情况下取消部署该应用程序时,它就会开始使用 100% 的 CPU(4 核 Xeon,裸机)。

经过一些修补和无数线程转储后,我们可以将问题隔离在 4 个卡住的线程上。他们每个人都在一个核心上消耗了100%。平均负载会在 5 分钟内从大约 0.10 跃升至 4.00。

这是似乎被卡住的线程:

"ExecuteThread: '3' for queue: 'weblogic.socket.Muxer'" daemon prio=10 tid=0x00007fb52801c800 nid=0x6bf0 runnable [0x00007fb58a0ad000]
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:79)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
- locked <0x00000000e18c66d0> (a sun.nio.ch.Util$2)
- locked <0x00000000e18c66c0> (a java.util.Collections$UnmodifiableSet)
- locked <0x00000000e18c6598> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102)
at weblogic.socket.NIOSocketMuxer.selectFrom(NIOSocketMuxer.java:541)
at weblogic.socket.NIOSocketMuxer.processSockets(NIOSocketMuxer.java:470)
at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:30)
at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:43)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:147)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:119)

我似乎有很多人遇到同样的问题(虽然不是 Weblogic,但):

https://github.com/netty/netty/issues/327

https://issues.jboss.org/browse/XNIO-172

Why does select() consume so much CPU time in my program?

我认为这不会发生,因为旧的 JDK 版本。 java -version 说:

java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

我在谷歌上搜索了一下,但没有找到任何相关信息。你们 WL 专家知道这个问题的原因是什么吗?

非常感谢!

最佳答案

我遇到了同样的问题。我设法通过使用以下设置解决了这个问题:

<强>1。使用 posix 混合器:

set('MuxerClass', 'weblogic.socket.PosixSocketMuxer')

参见 Weblogic tunning

<强>2。添加启动参数:

-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.PollSelectorProvider -DUseSunHttpHandler=true
  • sun.nio.ch.PollSelectorProvider 使用 linux poll 而不是 epoll_wait

  • -DUseSunHttpHandler=true使用weblogic http socket实现绕过

关于java - weblogic.socket.Muxer 使用 100% cpu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28662737/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com