Long thread pause times strongly indicate that your Java heap is suffering from consecutive FullGC cycles unable to reclaim any space from OldGen.
You will need :
1) gc.logs (if you have them) -- then you can use something like GCEasy (http://gceasy.io/) to visualize the heap state across time. This tool is great.
2) assuming there is FullGC running consecutively, you will need to capture an HPROF file. Then you can use Eclipse Memory Analyzer (or comparable tool) to analyze the heap. Eclipse MAT will give you a LeakSuspects report to use as a starting point to understand what is in memory. From there you can deduce why Java can't reclaim space. Often it's an accrual of unclosed resource-resolvers or something like that.
In a nutshell - if you are suffering from consecutive fullGC and long thread pause times you either
a) have a memory leak which you can figure out from an hprof capture