weblogic.socket.Muxer uses 100% cpu weblogic.socket.Muxer uses 100% cpu multithreading multithreading

weblogic.socket.Muxer uses 100% cpu


I faced the same issue.I managed to solve it by using the following settings:

1. Using posix muxer :

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

See Weblogic tunning

2. Add startup arguments:

-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.PollSelectorProvider -DUseSunHttpHandler=true
  • sun.nio.ch.PollSelectorProvider uses linux poll instead of epoll_wait

  • -DUseSunHttpHandler=true bypasses using weblogic http socket implementation


After much tinkering, an almost sleepless night and googling till I bled, I'm almost sure I got it solved.

This solution is heavily based on another thread: https://stackoverflow.com/a/7827952/1484232

To summarize the whole shebang, GC threads collision (most likely) were causing the issues here. After applying some parameters to my VM, it was magically solved.

-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ParallelCMSThreads=2 -XX:+CMSParallelRemarkEnabled -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSFullGCsBeforeCompaction=1 -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=80

If anyone ever has the same trouble, this can be used as a try to get things working again.

Cheers.


This is a known issue with Weblogic 12c, and is published as the following Oracle Support document:

Performance Issue Due To weblogic.socket.NIOSocketMuxer Usage In WLS 12.1.2+ (Doc ID 2128032.1) (link)

The workaround provided is to switch to using a Native Muxer class, as described in the answer from Omar MEBARKI.

The article does not address any or the other workarounds mentioned in the other answers here.