|
» |
|
|
» |
|
|
|
|
|
|
|
|
Xenoprof is a
system-wide profiler for Xen virtual machine
environments, capable of profiling the Xen
virtual machine monitor, multiple Linux guest
operating systems, and applications running on
them.
|
|
|
|
|
|
|
A growing number of
users are interested in running
their applications on operating
systems hosted in Virtual Machine (VM)
environments. Users can choose from
a number of virtual machine
solutions today, including
proprietary implementations from
VMWare and Microsoft and the
open-source implementation Xen.
Users need to study and optimize
their application's performance in a
virtual machine environment, since
it can differ markedly from its
performance in a non-virtualized
environment because of interactions
with the underlying virtual machine
monitor (VMM) and other virtual
machines. However, suitable tools
are not currently available to
analyze performance problems in
virtual machine environments.
In this project, we provide Xenoprof,
a system-wide statistical profiling
toolkit implemented for the Xen
virtual machine environment. The
Xenoprof toolkit supports
system-wide coordinated profiling in
a Xen environment to obtain the
distribution of hardware events such
as clock cycles, instruction
execution, TLB and cache misses,
etc. Xenoprof allows profiling of
concurrently executing virtual
machines (which includes the
operating system and applications
running in each virtual machine) and
the Xen VMM itself. Xenoprof
provides profiling data at the fine
granularity of individual processes
and routines executing in either the
virtual machine or in the Xen VMM.
Xenoprof will facilitate a better
understanding of the performance
characteristics of Xen's mechanisms,
optimization of Xen's
implementation, and the optimization
of applications running on Xen.
Xenoprof is modeled on the OProfile
profiling tool available on Linux
systems. Xenoprof consists of three
components: extensions to the Xen
virtual machine environment, an
OProfile kernel module adapted to
the Xen environment, and OProfile user-level
tools adapted to the Xen
environment.
Xenoprof is written in C. It works
on the x86 version of the Xen
virtual machine environment and it
supports the profiling of virtual
machines running Linux 2.6.
|
|
|
|
|
|
|
|
|
|
|
|
|
Xenoprof in now
included in Xen. You now only need
the patch for OProfile user level
tools. There is no more patches for
the kernel or Xen.
1) OProfile 0.9.1:
oprofile-0.9.1-xen-r3.patch.
Add support for system wide profiling in Xen (active and passive modes).
2) OProfile 0.9.2:
oprofile-0.9.2-xen-r2.patch.
Add support for passive domain profiling mode. Oprofile 0.9.2 already has Xen support for active domain profiling mode.
3) OProfile 0.9.3:
oprofile-0.9.3-xen-r2.patch.
Add support for passive domain profiling mode for Oprofile 0.9.3. It also include support for Xen on IA64 (provided by Isaku Yamahata). This revision (r2) does not require patches to Xen anymore.
4) OProfile 0.9.5:
oprofile-0.9.5-xen.patch.
Add support for passive domain profiling mode for Oprofile 0.9.5.
5) Steps
Download OProfile source code
from
http://oprofile.sourceforge.net/download
Untar the file and "cd" to the
oprofile directory
Then patch OProfile with the command
- patch -p1 <
oprofile-0.9.5-xen.patch
|
|
|
|
|
|
|
|
For Xen 3.0.0,
Xenoprof consisted
of four patches: one to Xen, two to Xenolinux
(one for Xen Linux sparse tree and
one for Xen Linux proper tree), and one to OProfile.
Note that there is no patch
available for Xen 3.0.1 and 3.0.2.
Avoid using the old version if
you can, since it is not maintained
any more. If possible try using the
latest version of Xen and Xenoprof.
To apply patches go to the
appropriate source directory and
run:
- patch -p2 < patch_file
(for xen0 and xenU trees)
- patch -p1 < pach_file
(for other patches)
Xenoprof
version 2.0 patches:
Patch for OProfile version
0.9.1:
-
oprofile-0.9.1-xen.patch
Apply to OProvile 0.9.1
source tree available from
http://oprofile.sourceforge.net/download
Patch for Xenolinux (linux
2.6.12 on Xen 3.0.0):
-
xenoprof-2.0-linux-2.6-sparse.patch
Apply to Linux sparse tree on Xen source tree before
generating linux proper trees to
ensure modifications are
included.
-
xenoprof-2.0-linux-2.6.12.patch
Apply twice, once to xen0 and
once to xenU trees in Xen source
tree.
Patch for Xen 3.0.0:
- xenoprof-2.0-xen-3.0.0.patch
Apply to Xen 3.0 source tree
|
|
|
|
|
|
|
|
|
A brief user guide
is available in
The architecture of
Xenoprof and initial findings from a
performance diagnosis of Xen are
described in our paper:
- Aravind Menon, Jose Renato
Santos, Yoshio Turner, G. (John)
Janakiraman, Willy Zwaenepoel,
Diagnosing Performance Overheads
in the Xen Virtual Machine
Environment, First ACM/Usenix
Conference on Virtual Execution
Environments (VEE'05), Chicago,
Illinois, June 11-12, 2005.5 [pdf].
|
|
|
|
|
|
|
|