High CPU in InternalNioOutputBuffer.sendAck
Environment
- JBoss Enterprise Application Platform (EAP) 6.x
Issue
- We see high CPU in threads like the following:
sun.nio.ch.WindowsAsynchronousSocketChannelImpl.write0 line: not available [native method]
sun.nio.ch.WindowsAsynchronousSocketChannelImpl.access$900 line: 43
sun.nio.ch.WindowsAsynchronousSocketChannelImpl$WriteTask.run line: 778
sun.nio.ch.WindowsAsynchronousSocketChannelImpl.implWrite line: 916
sun.nio.ch.AsynchronousSocketChannelImpl.write line: 382
sun.nio.ch.AsynchronousSocketChannelImpl.write line: 387
org.apache.tomcat.util.net.NioChannel.writeBytes line: 919
org.apache.coyote.http11.InternalNioOutputBuffer.blockingWrite line: 314
org.apache.coyote.http11.InternalNioOutputBuffer.sendAck line: 352
Resolution
- Upgrade to 6.4.15 when available
- As a workaround, don't use NIO connectors (use APR or JIO instead)
Root Cause
Diagnostic Steps
- Troubleshoot with CPU data and other diagnostic steps as described in Java application high CPU
Components
Category
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.