Keeping the system clock on the right time is troublesome for a virtual machine if VM guest tools are not available to synchronise clocks. As the guest OS does not have access to the hardware clock it relies on software to tick over its own clock, and inaccuracies generally lead to slowdown (although over-compensation for loss of timer ticks may gain time).
Changing any system's time can be risky - an OS relies on a contiguous series of time values. If a system event is scheduled to occur at a specified time and the clock is set forward beyond it, that time never occurs and the event will not occur.
Network Time Protocol (
ntpd) avoids this problem by making minuscule adjustments to the clock frequency (the slew), effectively shortening the length of a unit of time to the OS.
man ntpd states:
The slew rate of typical Unix kernels is limited to 0.5 ms/s, so for every second that the clock requires adjusting, 2000s are required to adjust it.
For a development VM that is off for periods of time this slew rate is too slow, and if the machine doesn't run time-critical services
ntpd can be configured to absolutely set the system time.