Wednesday, October 27, 2010

Xen(Trace/Mon/Baked) => XenGatherer

I tried to create a first version of the instrumentation app for Xen VMs that already gathers the information that is made available by XenTrace. I started by having a look at the following sources:
  • A tutorial which explains how to use XenTrace (and xentrace_format) and XenMon (and xenbaked) found here.
  • Information about the parameters that are monitored and how the tools hierarchy (see image below) can be found here.
  • A paper titled "XenMon: QoS Monitoring and Performance Profiling Tool". This whitepaper can be downloaded here.

While discovering the above mentioned tools I had a closer look at their implementations and decided that for the parameters I need that are made available by XenTrace I'll keep using XenBaked since it does not bring a lot of overhead (its output is stored in a binary file/shared memory). I adjusted the XenMon Python script such that it does not write to file constantly (less io interrupts) while gathering information through XenBaked. The source code can be found here.

If you run the XenGatherer tool, you get a CLI with the following possibilities:
  • start: start gathering information by running xenbaked
  • stop: stop gathering information by killing the xenbaked process
  • report: get the desired data from the mmapped file (/var/run/xenq-shm) and write it to a text file
  • quit: exit the application

No comments:

Post a Comment