Minwoo,

You have found an idle thread in the threadpool that is waiting for work. This is not the source of your slowness. The thread is polling the internal queue of work, waiting for the next "unit" of something to do.

You should include threads like these from your analysis.

On 2/26/19 8:32 AM, Kang Minwoo wrote:
Hello Users,

I have a question.

My client complains to me, HBase scan spent too much time.
So I started to debug.

I profiled the HBase Client Application using hprof.
The App spent the most time in below stack trace.

----
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:Unknown line)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:Unknown
 line)
java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:Unknown 
line)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:Unknown 
line)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:Unknown
 line)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:Unknown
 line)
java.lang.Thread.run(Thread.java:Unknown line)
---

---
org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection.waitForWork(RpcClientImpl.java:Unknown
 line)
org.apache.hadoop.hbase.ipc.RpcClientImpl$Connection.run(RpcClientImpl.java:Unknown
 line)
---

they spent 92% of total time.

I don't understand why they spent a lot of time.
Do you have any idea?

Best regards,
Minwoo Kang

Reply via email to