So after running some more diagnostics I'm able to determine it is this thread in the thread dump causing the high cpu usage. After running ttop it lists the threads:
2016-08-09T14:40:08.820-0800 Process summary
process cpu=104.76%
application cpu=101.47% (user=38.49% sys=62.99%)
other: cpu=3.28%
GC cpu=0.00% (young=0.00%, old=0.00%)
heap allocation rate 43mb/s
safe point rate: 0.4 (events/s) avg. safe point pause: 0.59ms
safe point sync time: 0.00% processing time: 0.02% (wallclock time)
[002050] user=37.36% sys=62.25% alloc= 42mb/s - NioProcessor-3
[002605] user= 1.13% sys= 0.47% alloc= 1228kb/s - RMI TCP Connection(2)-xxx.xx.xxx.xx
[000016] user= 0.00% sys= 0.07% alloc= 1093b/s - scheduled
[002604] user= 0.00% sys= 0.06% alloc= 14kb/s - cached1
[002606] user= 0.00% sys= 0.04% alloc= 4212b/s - JMX server connection timeout 2606
[000042] user= 0.00% sys= 0.01% alloc= 488b/s - hz._hzInstance_1_dev.MulticastThread
[000014] user= 0.00% sys= 0.01% alloc= 99b/s - pool-1-thread-1
[000049] user= 0.00% sys= 0.01% alloc= 318b/s - vert.x-eventloop-thread-0
[000032] user= 0.00% sys= 0.01% alloc= 30b/s - hz._hzInstance_1_dev.migration
[000037] user= 0.00% sys= 0.00% alloc= 0b/s - hz._hzInstance_1_dev.IO.thread-out-0
[000010] user= 0.00% sys= 0.00% alloc= 45b/s - vertx-blocked-thread-checker
Thread [2050] RUNNABLE at 2016-08-09T17:16:20.879 - NioProcessor-3
sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
org.apache.mina.transport.socket.nio.NioProcessor.select(NioProcessor.java:97)
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1080)
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
The same result is shown on the other server but since the CPU is 200% it shows 2 NioProcessor taking up all the CPU.
2016-08-09T14:51:01.871-0800 Process summary
process cpu=203.83%
application cpu=199.96% (user=77.40% sys=122.56%)
other: cpu=3.87%
GC cpu=0.00% (young=0.00%, old=0.00%)
heap allocation rate 83mb/s
safe point rate: 0.2 (events/s) avg. safe point pause: 1.83ms
safe point sync time: 0.01% processing time: 0.02% (wallclock time)
[000296] user=38.89% sys=60.55% alloc= 41mb/s - NioProcessor-2
[000306] user=37.38% sys=61.60% alloc= 41mb/s - NioProcessor-3
[000390] user= 0.94% sys= 0.43% alloc= 1169kb/s - RMI TCP Connection(2)-xxx.xx.xxx.xx
[000016] user= 0.00% sys= 0.05% alloc= 1133b/s - scheduled
[000388] user= 0.00% sys= 0.03% alloc= 516b/s - cached3
[000391] user= 0.00% sys= 0.02% alloc= 3787b/s - JMX server connection timeout 391
[000389] user= 0.00% sys= 0.02% alloc= 255b/s - cached1
[000042] user= 0.19% sys=-0.18% alloc= 488b/s - hz._hzInstance_1_dev.MulticastThread
[000025] user= 0.00% sys= 0.00% alloc= 0b/s - hz._hzInstance_1_dev.SlowOperationDetectorThread
[000014] user= 0.00% sys= 0.00% alloc= 82b/s - pool-1-thread-1
[000031] user= 0.00% sys= 0.00% alloc= 36b/s - hz._hzInstance_1_dev.wait-notify
[000017] user= 0.00% sys= 0.00% alloc= 0b/s - hz._hzInstance_1_dev.InvocationMonitorThread
[000092] user= 0.00% sys= 0.00% alloc= 0b/s - vert.x-eventloop-thread-6
[000034] user= 0.00% sys= 0.00% alloc= 87b/s - hz._hzInstance_1_dev.IO.thread-in-0
[000074] user= 0.00% sys= 0.00% alloc= 0b/s - vert.x-eventloop-thread-3
[000010] user= 0.00% sys= 0.00% alloc= 0b/s - vertx-blocked-thread-checker
[000094] user= 0.00% sys= 0.00% alloc= 0b/s - vert.x-eventloop-thread-7
[000060] user= 0.00% sys= 0.00% alloc= 0b/s - vert.x-eventloop-thread-2
Thread [296] RUNNABLE at 2016-08-09T17:20:07.130 - NioProcessor-2
sun.nio.ch.EPollArrayWrapper.interrupt(Native Method)
sun.nio.ch.EPollArrayWrapper.interrupt(EPollArrayWrapper.java:317)
sun.nio.ch.EPollSelectorImpl.wakeup(EPollSelectorImpl.java:193)
org.apache.mina.transport.socket.nio.NioProcessor.wakeup(NioProcessor.java:113)
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1172)
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
Thread [306] RUNNABLE at 2016-08-09T17:20:07.130 - NioProcessor-3
sun.nio.ch.EPollArrayWrapper.interrupt(Native Method)
sun.nio.ch.EPollArrayWrapper.interrupt(EPollArrayWrapper.java:317)
sun.nio.ch.EPollSelectorImpl.wakeup(EPollSelectorImpl.java:193)
org.apache.mina.transport.socket.nio.NioProcessor.wakeup(NioProcessor.java:113)
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1172)
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)