首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >weblogic.socket.Muxer使用100%的cpu

weblogic.socket.Muxer使用100%的cpu
EN

Stack Overflow用户
提问于 2015-02-22 20:17:40
回答 3查看 6.8K关注 0票数 6

我们最近开始体验WebLogic12c中使用weblogic.Deployer实用工具的部署。我们可以很好地部署EAR,但是每当我们试图在托管服务器仍然运行的情况下卸载该应用程序时,它将开始使用100%的CPU (4核Xeon,裸金属)。

经过一些修补和无数的线程转储,我们可以将问题隔离在4个卡住的线程上。他们每一个人都百分之百地消耗在一个核心上。平均负荷将从0.10左右的东西在5分钟内跃升到4.00。

这些线程似乎被卡住了:

代码语言:javascript
复制
"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

为什么select()在我的程序中占用这么多CPU时间?

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

代码语言:javascript
复制
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专家知道造成这个问题的原因吗?

非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-23 17:33:21

经过了很多的修补,一个几乎失眠的夜晚,谷歌直到我失血,我几乎确定我已经解决了。

此解决方案很大程度上基于另一个线程:https://stackoverflow.com/a/7827952/1484232

总之,GC线程冲突(很可能是)导致了这里的问题。在我的VM中应用了一些参数之后,它被神奇地解决了。

代码语言:javascript
复制
-XX:+UseConcMarkSweepGC 
-XX:+UseParNewGC 
-XX:ParallelCMSThreads=2 
-XX:+CMSParallelRemarkEnabled 
-XX:+CMSIncrementalMode 
-XX:+CMSIncrementalPacing 
-XX:CMSFullGCsBeforeCompaction=1 
-XX:+CMSClassUnloadingEnabled 
-XX:CMSInitiatingOccupancyFraction=80

如果任何人都有同样的麻烦,这可以用来尝试让事情重新开始。

干杯。

票数 3
EN

Stack Overflow用户

发布于 2016-07-25 12:13:38

我也面临着同样的问题。通过使用以下设置,我设法解决了这个问题:

1.使用posix :

代码语言:javascript
复制
set('MuxerClass', 'weblogic.socket.PosixSocketMuxer')

请参阅Weblogic调优

2.添加启动参数:

代码语言:javascript
复制
-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.PollSelectorProvider -DUseSunHttpHandler=true
  • sun.nio.ch.PollSelectorProvider使用linux poll而不是epoll_wait
  • 使用weblogic套接字实现的-DUseSunHttpHandler=true旁路
票数 6
EN

Stack Overflow用户

发布于 2017-05-10 18:56:42

这是Weblogic 12c中的一个已知问题,并作为以下Oracle支持文档发布:

由于在WLS weblogic.socket.NIOSocketMuxer中使用12.1.2+ (Doc 2128032.1) (链接)而导致的性能问题

提供的解决方法是切换到使用本机Muxer类,正如Omar MEBARKI的答案所描述的那样。

这篇文章没有提到其他答案中提到的任何或其他的解决办法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28662737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档