I think you're going to have to sit down and read what's in those heapdumps.
Tomcat's memory footprint is fairly small as
Java applications go. Most of the memory usage comes from applications deployed under Tomcat.
In particular, there are no known cases where Tomcat servers are running wild on memory usage, so that would indicate that you probably have a badly-behaving web application.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.