Asterisk and multiple CPUs

We use Asterisk on VMware ESX, we’ve got pretty heavy load (about 200 simultaneous calls) now, and it loads one virtual CPU at 100%. I enable second CPU for this VM, CentOS supports it, I see CPU0 and CPU1 in “top” but Asterisk still loads only one core to 100% and leaves second about 100% idle. Is it OK? or how to force Asterisk use second core?

$ asterisk -V

This probably means that one thread is accounting for most of the processing. One would need to know a lot more about the configuration, to know why that was.

The other possibility is that is simply how your VM Host behaves when the demand for CPUs outstrips the supply. That feels quite likely to me. I wouldn’t run a production instance of Asterisk on a VM, myself.