Half-baked ideas: Accelerated testing for VMs

For more half-baked ideas, see my ideas tag

When manufacturers build consumer hardware it is often subjected to so-called “accelerated aging” or “accelerated testing”. For example, the life of an aircraft is not measured in years, but in pressurization cycles. Aircraft are repeatedly pressurized in tanks, and shaken (“fatigue testing”) to find out when they will fail.

So here’s the idea: Apply accelerated testing to virtual machines. Modify pvclock so it runs 100 or 1000 times faster than normal. Daily and weekly cron jobs accelerated, and so are daemons, so we rapidly find if they slowly leak memory or disk space, or have some other time-related failure. How will the guest behave after it has been running for a year, or 10 years? How about applications? Now we can find out, and not need to wait that long.

About these ads

4 Comments

Filed under Uncategorized

4 responses to “Half-baked ideas: Accelerated testing for VMs

  1. Yaniv

    For simple applications it might work, but I highly doubt a whole system would – virtual and physical hardware I/O would timeout – as the hardware (virtual or physical) won’t be 100 times faster.

  2. Rich-

    This idea of “running a VM in ‘fast forward’ ” is pretty intriguing. I investigated it for some kernel interface security testing I was working on. I wanted to eliminate time spent by the kernel while “idle” so that my automated tests would run faster.

    I lost focus on the approach when I found /a lot/ of methods by which it could be accomplished. Here are a few links relevant to these methods:

    https://developer.mozilla.org/En/Debugging/Record_and_Replay_Debugging_Firefox
    http://www.vmware.com/files/pdf/Timekeeping-In-VirtualMachines.pdf
    http://support.ntp.org/bin/view/Support/KnownOsIssues#Section_9.2.2.

    … a half-baked list to complement the half-baked idea :]

    Cheers,

    -Tyler

  3. For per-processed “clock fast forward” there’s the cleverly-named “Macfly”: http://software.inl.fr/trac/wiki/Macfly

    I suspect it interposes on time-related libc calls via LD_PRELOAD.

    -Tyler

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s