High CPU in InternalNioOutputBuffer.sendAck

Solution Unverified - Updated

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

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.