Java gets run every 30 seconds or so, perl is run every 30 seconds or so. I would love to run this on our vmware server farm but this load for 0 users is quite excessive. Can anyone shed some light on why these processes are running so often on a completely idle server?

Those stats show 95.2% idle.... So I think you may be reading the stats wrong. Can you confirm that the stats below are an attempt to show a loaded server.

In the host operating system (windows xp) the machine stays at 100% cpu every 5-15 seconds. Every time java runs (every 15 - 20 seconds) the CPU usage goes through the roof. Does java need to run this often? If so, why not keep it resident?

Well that may just be something with the virtual server. We don't reccomend running Zimbra under a virtual machine. Java is resident; Tomcat (running under java) will run periodic cleanups and idle session/thread checks. These may cause some CPU usage, but we've never seen this take up more than a percent or two of CPU when idle. This of course is on a normal install. We don't test under a virtual machine.