So, your bdb.cache.size is 11g and your jvm heap size is 12g. 0.5g of the heap is for newgen, leaving roughly 11.4g for oldgen, which is inevitably where your bdb cache objects will land and remain for a long time. If you want a cache size that large, you're going to need to bump your heap size up to at least 16g and you should probably give at least 1g to newgen. You're probably spending most of your time in GC, which is probably what is keeping the CPU busy. You may need a much larger heap than even 16g (and larger newgen) depending upon your throughput rate. How many queries per second are you serving?
Also, if you're running voldemort 0.95 (I assume that is what /opt/vdm-0.95 is), you're _very_ out of date and should upgrade to 1.2.0+ to get all of the performance improvements.
Lastly, with the bdb cache consuming 90% of the jvm heap, there's probably no room for the read-only and in-memory storage engines to run properly, so you're probably just stuck in a non-stop GC loop trying to allocate for all three engines in barely enough heap space for even one engine.
Brendan