I don't have hard numbers, but every indication I've seen is that "mx" is merely the amount of memory allowed for Java objects themselves. That is, not including stuff like the core JVM and possibly secondary constructs like buffers and the like.
I recommend tracking the TOTAL RAM usage on the machine on a running basis using something like vmstat and at least occasionally "top". If the xm allotment exceeds actual available RAM, I'm pessimist enough to expect that the entire JVM may blow, not just throw OutOfMemory exceptions.
It wouldn't hurt to check to see if any dumpfiles were produced, though. A post-mortem might turn up a bug in the JVM or something.
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.
No dump were produced, this is because they JVM didn't die from OutOfMemory Exception but rather the oom killed the dmesg indicates the total-vm was like 10gb while the anon-rss was 7.8 of the process that was killed.