If you are very much concern with running a profiler in production environment run the jmap -histo:live pid
histogram is the summary of the heap, its very lite weight and will take very less time to generate data for you. This will be of good use if you dont have HeapDumpOnOutOfMemoryError is not set.
Its always better to take a heap dump on OOME
Java provides a system switch to do this by flag -XX:+HeapDumpOnOutOfMemoryError this will generate heap dump file.
Heap dump file contain all the objects related information in it. It can be easily analysed using jhat . This will open the dump file and analyze the data and listen to a port that will be displayed in console.
If the GC logs are configured have a look at the GC logs and identify the time from when the memory consumption increased significantly. From the logs try to identify the actions done/requests processed by your tomcat, go through the code and try to identify if there are any memory leaks caused in the code. You can use the histogram as reference since histo provides the objects count as well.
If you are using some cache in your application check what is the max size configured for cache, or is cache is cleared at regular intervals ....
Hope this is helpful.