有几个服务发布在HP unix上,weblogic版本是12c,服务器经常100%(多个cpu均是100%)。分析过当前的进程的状态,都是在GC。现象是CPU使用率上去以后就下不来了。
然后把weblogic降到10g,重新部署系统,CPU就降下来了,推测是服务器和weblogic不兼容。
打开weblogic的console界面:
服务器-->选中服务--> 配置-->优化
--> 高级--> muxer类:weblogic.socket.NTSocketMuxer 改为:weblogic.socket.DevPollSocketMuxer
As per bug 18178560, WebLogic Server provides a non-blocking IO muxer implementation as the default muxer configuration. On 12.1.2 or after, non-blocking
IO muxer is default implementation of Muxer. In default configuration, MuxerClass is set to "weblogic.socket.NIOSocketMuxer".
Native Muxers and Java Muxer are old and deprecated. Bug 18178560 also suggests that switching to the native muxer may improve performance on some platforms like windows
Native muxers use platform-specific native binaries to read data from sockets. The majority of all platforms provide some mechanism to poll a socket for data. For example, Unix systems use the poll system call and the Windows architecture uses completion
ports. Native muxers provide superior scalability because they implement a non-blocking thread model. When a native muxer is used, the server creates a fixed number of threads dedicated to reading incoming requests.
Currently it is just deprecated which means it is still supported at this point in time but may not be in the future To enable these muxers, muxer class name needs to be explicitly configured in MuxerClass.
Solaris/HP-UX Native Muxer : weblogic.socket.DevPollSocketMuxer
POSIX Native Muxer : weblogic.socket.PosixSocketMuxer
Windows Native Muxer : weblogic.socket.NTSocketMuxer