Open joshzignego opened 4 years ago
Hmm, suggest calls only come from reads and I always recommend folks separate their writers from readers. That would help the write rate.
Unfortunately the TSD code has deferred.joinUninterruptibly()
calls everywhere so it will never timeout waiting on an async call to HBase. And by default the AsyncHBase code doesn't have a timeout set on RPCs so they can be sent off to a region server and if it never responds, the thread will just hang in the TSDB JVM until it's restarted.
Try setting hbase.rpc.timeout
to a reasonable value like 60000
for a JVM that reads from HBase. That will let the threads recover. https://opentsdb.github.io/asynchbase/docs/build/html/configuration.html Also check the region server stats to see if the read queue is full. There could be an unhandled exception in the AsyncHBase code that dropped a response from the server on the floor.
We are running OpenTSDB version 2.4.0 (had also seen this with 2.2.0) with one OpenTSDB table on a MapR 5.2.2 cluster (MapR-DB being the underlying datastore). We have been experiencing a lot of slowness with writes to our OpenTSDB table. We have detected that the slowness is not within our MapR HBase puts, but rather our OpenTSDB process itself that is causing the slowness.
Typically, we see write throughputs of ~100,000 records/sec, but over the past 3 weeks those rates have fallen to only about 1,000/sec now, which is a huge performance degradation.
When running a stack trace against our OpenTSDB processes, we see a lot of threads often get stuck WAITING at this point:
This thread will be waiting on ‘net.opentsdb.uid.UniqueId.suggest(UniqueId.java:769)’ for a long time, as running the stack trace at later intervals reveals the thread is still waiting on this call to return.
We have checked our OpenTSDB stats endpoint, and find that we are not near our limits for UID’s:
We have already deduced that HBase writes are not the issue, as there is very little delay between HBase receiving put requests and writing to MapR-DB, a strong indicator the delay is occurring in the OpenTSDB process.
Does anyone have any inclinations what might be causing the suggest Unique ID calls to be taking so long? Or any other ideas where to look for the decreased writing writes?
Thank you!