-
New Feature
-
Resolution: Unresolved
-
Major
-
None
Often, the extreme slowness in the UI or executors come from lock contention.
Today, I catch them mainly by looking at thread dumps and noticing large number of threads waiting for the same lock. But thread dump is a fairly crude tool for this purpose.
- If the average duration of one locking is very long, it won't take too many threads to cause a long delay, but they won't be as visible in thread dumps.
- We need to ask the thread dumps be taken while the problem is exhibiting itself.
This seems like something a tool can help. I don't know what is easy to do, what's possible, and what isn't, but some ideas include:
- track contended locks across JVMs over time and report them?
- If doing it across the JVMs is difficult, maybe we can do it for specific objects or specific classes?
- Or instead of doing this proactively, perhaps the plugin would let us specify an expression to designate an object, then we just monitor that object somehow?
I wonder JMX or Java agent offer anything in this space.