Hi,
I have an implementation of SSH client using Mina SSHD.
I've noticed that working with it on several hosts will take the CPU to 100% 
for every SSH 
client session I have. For me this is a severe state, so I ran some debug / 
profiling stuff.

First I used jstack to see what's running.
I saw-
"ClientInputStreamPump" daemon prio=6 tid=0x34db8400 nid=0xec8 runnable 
[0x478df000]
   java.lang.Thread.State: RUNNABLE
        at 
org.apache.sshd.client.channel.ChannelSession.securedRead(ChannelSession.java:107)
        at 
org.apache.sshd.client.channel.ChannelSession.pumpInputStream(ChannelSession.java:81)
        at 
org.apache.sshd.client.channel.ChannelSession$1.run(ChannelSession.java:53)

   Locked ownable synchronizers:
        - None

The, I wrote an application that connects to the other VM and list the thread 
utilization...
Here's what I got-

T ID: 2637 Name: JMX server connection timeout 2637
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 2636 Name: RMI TCP Connection(310)-10.35.17.171
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 2611 Name: RMI TCP Accept-0
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 2528 Name: WorkerThread#0[127.0.0.1:2566]
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 2519 Name: ClientInputStreamPump
endCpuTime : 17624 sec's
endUserTime : 17619 sec's
T ID: 1101 Name: http-0.0.0.0-8080-27
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1100 Name: http-0.0.0.0-8080-26
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1099 Name: http-0.0.0.0-8080-25
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1095 Name: http-0.0.0.0-8080-24
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1093 Name: http-0.0.0.0-8080-23
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1092 Name: http-0.0.0.0-8080-22
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1091 Name: http-0.0.0.0-8080-21
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1090 Name: http-0.0.0.0-8080-20
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1089 Name: http-0.0.0.0-8080-19
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1088 Name: http-0.0.0.0-8080-18
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1087 Name: http-0.0.0.0-8080-17
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1086 Name: http-0.0.0.0-8080-16
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1085 Name: http-0.0.0.0-8080-15
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1084 Name: http-0.0.0.0-8080-14
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1083 Name: http-0.0.0.0-8080-13
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1082 Name: http-0.0.0.0-8080-12
endCpuTime : 114 sec's
endUserTime : 103 sec's
T ID: 1081 Name: http-0.0.0.0-8080-11
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1080 Name: http-0.0.0.0-8080-10
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1079 Name: http-0.0.0.0-8080-9
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1078 Name: http-0.0.0.0-8080-8
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1077 Name: http-0.0.0.0-8080-7
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1076 Name: http-0.0.0.0-8080-6
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1075 Name: http-0.0.0.0-8080-5
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1074 Name: http-0.0.0.0-8080-4
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 1073 Name: pool-22-thread-6
endCpuTime : 544 sec's
endUserTime : 534 sec's
T ID: 274 Name: http-0.0.0.0-8080-3
endCpuTime : 13 sec's
endUserTime : 13 sec's
T ID: 201 Name: MultiThreadedHttpConnectionManager cleanup
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 181 Name: http-0.0.0.0-8080-2
endCpuTime : 497 sec's
endUserTime : 444 sec's
T ID: 173 Name: http-0.0.0.0-8080-1
endCpuTime : 67 sec's
endUserTime : 60 sec's
T ID: 172 Name: ajp-0.0.0.0-8009-Acceptor-0
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 171 Name: http-0.0.0.0-8080-Acceptor-0
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 170 Name: JBossLifeThread
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 161 Name: IdleRemover
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 154 Name: Thread-17
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 153 Name: JCA PoolFiller
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 152 Name: HSQLDB Timer @1dc8b22
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 151 Name: QuartzScheduler_QuartzSchedulerThread
endCpuTime : 23 sec's
endUserTime : 22 sec's
T ID: 150 Name: QuartzScheduler_Worker-99
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 149 Name: QuartzScheduler_Worker-98
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 148 Name: QuartzScheduler_Worker-97
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 147 Name: QuartzScheduler_Worker-96
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 146 Name: QuartzScheduler_Worker-95
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 145 Name: QuartzScheduler_Worker-94
endCpuTime : 11 sec's
endUserTime : 10 sec's
T ID: 144 Name: QuartzScheduler_Worker-93
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 143 Name: QuartzScheduler_Worker-92
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 142 Name: QuartzScheduler_Worker-91
endCpuTime : 12 sec's
endUserTime : 11 sec's
T ID: 141 Name: QuartzScheduler_Worker-90
endCpuTime : 13 sec's
endUserTime : 10 sec's
T ID: 140 Name: QuartzScheduler_Worker-89
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 139 Name: QuartzScheduler_Worker-88
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 138 Name: QuartzScheduler_Worker-87
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 137 Name: QuartzScheduler_Worker-86
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 136 Name: QuartzScheduler_Worker-85
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 135 Name: QuartzScheduler_Worker-84
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 134 Name: QuartzScheduler_Worker-83
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 133 Name: QuartzScheduler_Worker-82
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 132 Name: QuartzScheduler_Worker-81
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 131 Name: QuartzScheduler_Worker-80
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 130 Name: QuartzScheduler_Worker-79
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 129 Name: QuartzScheduler_Worker-78
endCpuTime : 12 sec's
endUserTime : 11 sec's
T ID: 128 Name: QuartzScheduler_Worker-77
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 127 Name: QuartzScheduler_Worker-76
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 126 Name: QuartzScheduler_Worker-75
endCpuTime : 11 sec's
endUserTime : 10 sec's
T ID: 125 Name: QuartzScheduler_Worker-74
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 124 Name: QuartzScheduler_Worker-73
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 123 Name: QuartzScheduler_Worker-72
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 122 Name: QuartzScheduler_Worker-71
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 121 Name: QuartzScheduler_Worker-70
endCpuTime : 11 sec's
endUserTime : 9 sec's
T ID: 120 Name: QuartzScheduler_Worker-69
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 119 Name: QuartzScheduler_Worker-68
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 118 Name: QuartzScheduler_Worker-67
endCpuTime : 11 sec's
endUserTime : 9 sec's
T ID: 117 Name: QuartzScheduler_Worker-66
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 116 Name: QuartzScheduler_Worker-65
endCpuTime : 12 sec's
endUserTime : 11 sec's
T ID: 115 Name: QuartzScheduler_Worker-64
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 114 Name: QuartzScheduler_Worker-63
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 113 Name: QuartzScheduler_Worker-62
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 112 Name: QuartzScheduler_Worker-61
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 111 Name: QuartzScheduler_Worker-60
endCpuTime : 12 sec's
endUserTime : 11 sec's
T ID: 110 Name: QuartzScheduler_Worker-59
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 109 Name: QuartzScheduler_Worker-58
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 108 Name: QuartzScheduler_Worker-57
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 107 Name: QuartzScheduler_Worker-56
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 106 Name: QuartzScheduler_Worker-55
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 105 Name: QuartzScheduler_Worker-54
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 104 Name: QuartzScheduler_Worker-53
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 103 Name: QuartzScheduler_Worker-52
endCpuTime : 11 sec's
endUserTime : 10 sec's
T ID: 102 Name: QuartzScheduler_Worker-51
endCpuTime : 11 sec's
endUserTime : 10 sec's
T ID: 101 Name: QuartzScheduler_Worker-50
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 100 Name: QuartzScheduler_Worker-49
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 99 Name: QuartzScheduler_Worker-48
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 98 Name: QuartzScheduler_Worker-47
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 97 Name: QuartzScheduler_Worker-46
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 96 Name: QuartzScheduler_Worker-45
endCpuTime : 13 sec's
endUserTime : 10 sec's
T ID: 95 Name: QuartzScheduler_Worker-44
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 94 Name: QuartzScheduler_Worker-43
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 93 Name: QuartzScheduler_Worker-42
endCpuTime : 12 sec's
endUserTime : 11 sec's
T ID: 92 Name: QuartzScheduler_Worker-41
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 91 Name: QuartzScheduler_Worker-40
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 90 Name: QuartzScheduler_Worker-39
endCpuTime : 12 sec's
endUserTime : 11 sec's
T ID: 89 Name: QuartzScheduler_Worker-38
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 88 Name: QuartzScheduler_Worker-37
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 87 Name: QuartzScheduler_Worker-36
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 86 Name: QuartzScheduler_Worker-35
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 85 Name: QuartzScheduler_Worker-34
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 84 Name: QuartzScheduler_Worker-33
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 83 Name: QuartzScheduler_Worker-32
endCpuTime : 12 sec's
endUserTime : 11 sec's
T ID: 82 Name: QuartzScheduler_Worker-31
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 81 Name: QuartzScheduler_Worker-30
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 80 Name: QuartzScheduler_Worker-29
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 79 Name: QuartzScheduler_Worker-28
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 78 Name: QuartzScheduler_Worker-27
endCpuTime : 12 sec's
endUserTime : 11 sec's
T ID: 77 Name: QuartzScheduler_Worker-26
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 76 Name: QuartzScheduler_Worker-25
endCpuTime : 11 sec's
endUserTime : 9 sec's
T ID: 75 Name: QuartzScheduler_Worker-24
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 74 Name: QuartzScheduler_Worker-23
endCpuTime : 12 sec's
endUserTime : 11 sec's
T ID: 73 Name: QuartzScheduler_Worker-22
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 72 Name: QuartzScheduler_Worker-21
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 71 Name: QuartzScheduler_Worker-20
endCpuTime : 11 sec's
endUserTime : 9 sec's
T ID: 70 Name: QuartzScheduler_Worker-19
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 69 Name: QuartzScheduler_Worker-18
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 68 Name: QuartzScheduler_Worker-17
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 67 Name: QuartzScheduler_Worker-16
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 66 Name: QuartzScheduler_Worker-15
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 65 Name: QuartzScheduler_Worker-14
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 64 Name: QuartzScheduler_Worker-13
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 63 Name: QuartzScheduler_Worker-12
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 62 Name: QuartzScheduler_Worker-11
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 61 Name: QuartzScheduler_Worker-10
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 60 Name: QuartzScheduler_Worker-9
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 59 Name: QuartzScheduler_Worker-8
endCpuTime : 11 sec's
endUserTime : 10 sec's
T ID: 58 Name: QuartzScheduler_Worker-7
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 57 Name: QuartzScheduler_Worker-6
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 56 Name: QuartzScheduler_Worker-5
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 55 Name: QuartzScheduler_Worker-4
endCpuTime : 12 sec's
endUserTime : 10 sec's
T ID: 54 Name: QuartzScheduler_Worker-3
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 53 Name: QuartzScheduler_Worker-2
endCpuTime : 13 sec's
endUserTime : 11 sec's
T ID: 52 Name: QuartzScheduler_Worker-1
endCpuTime : 11 sec's
endUserTime : 9 sec's
T ID: 51 Name: QuartzScheduler_Worker-0
endCpuTime : 14 sec's
endUserTime : 11 sec's
T ID: 50 Name: WorkManager(2)-1
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 49 Name: AOPListner
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 48 Name: ContainerBackgroundProcessor[StandardEngine[jboss.web]]
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 47 Name: RMI TCP Accept-4444
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 46 Name: PooledInvokerAcceptor#0-4445
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 43 Name: Thread-14
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 44 Name: Listener:4712
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 42 Name: Thread-13
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 41 Name: Thread-12
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 40 Name: Thread-11
endCpuTime : 5 sec's
endUserTime : 5 sec's
T ID: 38 Name: Listener:4713
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 37 Name: AcceptorThread[ServerSocket[addr=/0.0.0.0,port=0,localport=4446]]
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 36 Name: ServerSocketRefresh
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 35 Name: HDScanner
endCpuTime : 319 sec's
endUserTime : 136 sec's
T ID: 34 Name: AcceptorThread[ServerSocket[addr=/0.0.0.0,port=0,localport=3873]]
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 33 Name: ServerSocketRefresh
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 32 Name: secondaryServerSocketThread[0]
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 31 Name: AcceptorThread[ServerSocket[addr=/0.0.0.0,port=0,localport=4457]]
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 30 Name: ServerSocketRefresh
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 28 Name: RMI RenewClean-[qumranetyk:1175]
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 27 Name: RMI Scheduler(0)
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 25 Name: RMI TCP Accept-0
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 24 Name: RMI TCP Accept-1090
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 23 Name: AcceptorThread[ServerSocket[addr=/0.0.0.0,port=0,localport=5400]]
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 22 Name: ServerSocketRefresh
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 21 Name: JBoss System Threads(1)-2
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 20 Name: GC Daemon
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 19 Name: RMI Reaper
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 18 Name: RMI TCP Accept-1098
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 17 Name: JBoss System Threads(1)-1
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 16 Name: Timer-Log4jService
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 15 Name: ZipFile Lock Reaper
endCpuTime : 1 sec's
endUserTime : 1 sec's
T ID: 14 Name: Timer-0
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 11 Name: DestroyJavaVM
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 5 Name: Attach Listener
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 4 Name: Signal Dispatcher
endCpuTime : 0 sec's
endUserTime : 0 sec's
T ID: 3 Name: Finalizer
endCpuTime : 8 sec's
endUserTime : 7 sec's
T ID: 2 Name: Reference Handler
endCpuTime : 2 sec's
endUserTime : 1 sec's

Just in case you missed it-
T ID: 2519 Name: ClientInputStreamPump
endCpuTime : 17624 sec's
endUserTime : 17619 sec's

It looks like ClientInputStreamPump is pumping my CPU :(
Any idea how to resolve it ?

-- 

/d

Reply via email to