`visualvm˙ is also a great tool for such purposes, you can connect to a remote JVM as well and see what's inside.
I suggest you doing this:
- take a snapshot of the application running since few hours and since 5 days
- compare thread counts
- compare object counts, search for increasing numbers
- see if your program spends more time in particular methods on the 5th day than on the 1str one
- check for disk space, maybe you are running out of it