Thursday, September 13, 2007

I Finally Fixed The Little Sucker!

Weight: 139.6
Pain areas: heartburn, chest area,
Numbness: none, really
Nightsweat: none, really
General Attitude: Positive
Swallowing: little better than yesterday
Medications: Prevacid, Vitamin E, Multivitamin, Lemon grass tea

This post isn't really related to my health, but I just had to write it down because it was such an accomplishment for me - I've been struggling with this for months!

A little background: I host my own servers at home using MS Windows Servers. I have a Domain Controller and an Exchange 2003 server that I have under a VM (thats short for Virtual Machine). Both VM are running under my host machine which is also a Windows 2003 server. The problem that I've been for a while was that the clock in the VMs were about twice as fast as real-time.

At first I thought that it was the CPU speed throttling on the AMD processor (their 'Cool n' Quiet' feature) but it still had problems even though I disabled it. I kind of gave up on fixing the clock problem and instead worked around it by having my Domain Controller sync up its time using pool.ntp.org every 20 seconds or so. Under normal circumstances, a server would only need to sync up every couple hours or so - but the clock in my VM was going fast-forward. So I got that to work but not for my Exchange Server. Since the Exchange server is part of the domain, it should automatically sync up its time with the Domain Controller. But that didn't work, and in fact it might have made it even worse as the clock in that VM was going 3 seconds for every "real" second.

After about 4 or 5 hours mucking with the registries and several commands, I changed my tactic back to exploring the options in VMware itself.

It turned out that I had to set these options in the config.ini file:

host.cpukHz = 3000000
host.noTSC = TRUE
pstc.noTSC = TRUE
host.TSC.noForceSync = TRUE
processor0.use = TRUE
processor1.use = FALSE

I think the main problem was that VMware was using the 2 cores of the processor and that somehow caused the timing inconsistencies. Setting it use only the first core works perfectly now.

At last! Now I can finally have my very own reliable email!