Try using App Dynamics, they claim that the overhead is very low (2-3 %)
http://www.appdynamics.com/products-free-download.php.
In case you are using the Jrockit JVM, you can also use a tool called Jrockit Mission Control, which also (as claimed by Oracle) has a low overhead.
Another option is that you could connect to JVM using Visual VM to see how threads are executing under stress, is there contention, which can be figured out by seeing if
thread are waiting, (will show in red color) or is executing fine (all green). In case you are seeing lot of reds taking a thread dump might be useful.