From a8b837d5018c488a130fcbea425904817a862210 Mon Sep 17 00:00:00 2001 From: "rjones@localhost" Date: Thu, 30 Aug 2007 17:38:09 +0100 Subject: Initial import from CVS. --- virt-top/.cvsignore | 8 + virt-top/.depend | 8 + virt-top/Makefile | 79 +++ virt-top/Makefile.in | 79 +++ virt-top/README | 42 ++ virt-top/virt-top.1 | 328 +++++++++++ virt-top/virt-top.pod | 244 ++++++++ virt-top/virt-top.txt | 167 ++++++ virt-top/virt_top.ml | 1405 +++++++++++++++++++++++++++++++++++++++++++++ virt-top/virt_top_csv.ml | 29 + virt-top/virt_top_main.ml | 37 ++ virt-top/virt_top_xml.ml | 52 ++ 12 files changed, 2478 insertions(+) create mode 100644 virt-top/.cvsignore create mode 100644 virt-top/.depend create mode 100644 virt-top/Makefile create mode 100644 virt-top/Makefile.in create mode 100644 virt-top/README create mode 100644 virt-top/virt-top.1 create mode 100644 virt-top/virt-top.pod create mode 100644 virt-top/virt-top.txt create mode 100644 virt-top/virt_top.ml create mode 100644 virt-top/virt_top_csv.ml create mode 100644 virt-top/virt_top_main.ml create mode 100644 virt-top/virt_top_xml.ml (limited to 'virt-top') diff --git a/virt-top/.cvsignore b/virt-top/.cvsignore new file mode 100644 index 0000000..cb61894 --- /dev/null +++ b/virt-top/.cvsignore @@ -0,0 +1,8 @@ +*.cmi +*.cmo +*.cmx +*.cma +*.cmxa +Makefile +virt-top +virt-top.opt \ No newline at end of file diff --git a/virt-top/.depend b/virt-top/.depend new file mode 100644 index 0000000..75ecf81 --- /dev/null +++ b/virt-top/.depend @@ -0,0 +1,8 @@ +virt_top_csv.cmo: virt_top.cmo ../libvirt/libvirt.cmi +virt_top_csv.cmx: virt_top.cmx ../libvirt/libvirt.cmx +virt_top_main.cmo: virt_top.cmo ../libvirt/libvirt.cmi +virt_top_main.cmx: virt_top.cmx ../libvirt/libvirt.cmx +virt_top.cmo: ../libvirt/libvirt_version.cmi ../libvirt/libvirt.cmi +virt_top.cmx: ../libvirt/libvirt_version.cmx ../libvirt/libvirt.cmx +virt_top_xml.cmo: virt_top.cmo ../libvirt/libvirt.cmi +virt_top_xml.cmx: virt_top.cmx ../libvirt/libvirt.cmx diff --git a/virt-top/Makefile b/virt-top/Makefile new file mode 100644 index 0000000..9c7ef0b --- /dev/null +++ b/virt-top/Makefile @@ -0,0 +1,79 @@ +# $Id: Makefile.in,v 1.6 2007/08/23 11:09:19 rjones Exp $ + +PACKAGE := ocaml-libvirt +VERSION := 0.3.2.4 + +INSTALL := /usr/bin/install -c +HAVE_PERLDOC := perldoc + +prefix = /usr/local +exec_prefix = ${prefix} +bindir = ${exec_prefix}/bin + +pkg_curses = yes +pkg_xml_light = yes +pkg_csv = yes + +OCAMLCPACKAGES := -package unix,extlib,curses + +OBJS := virt_top.cmo +ifeq ($(pkg_xml_light),yes) +OBJS += virt_top_xml.cmo +OCAMLCPACKAGES := $(OCAMLCPACKAGES),xml-light +endif +ifeq ($(pkg_csv),yes) +OBJS += virt_top_csv.cmo +OCAMLCPACKAGES := $(OCAMLCPACKAGES),csv +endif +OBJS += virt_top_main.cmo + +XOBJS := $(OBJS:.cmo=.cmx) + +OCAMLCPACKAGES += -I ../libvirt +OCAMLCFLAGS := -g -w s +OCAMLCLIBS := -linkpkg + +OCAMLOPTPACKAGES := $(OCAMLCPACKAGES) +OCAMLOPTFLAGS := -w s +OCAMLOPTLIBS := $(OCAMLCLIBS) + +export LIBRARY_PATH=../libvirt +export LD_LIBRARY_PATH=../libvirt + +BYTE_TARGETS := virt-top +OPT_TARGETS := virt-top.opt + +ifeq ($(HAVE_PERLDOC),perldoc) +BYTE_TARGETS += virt-top.1 virt-top.txt +endif + +all: $(BYTE_TARGETS) + +opt: $(OPT_TARGETS) + +virt-top: $(OBJS) + ocamlfind ocamlc $(OCAMLCPACKAGES) $(OCAMLCFLAGS) $(OCAMLCLIBS) \ + ../libvirt/mllibvirt.cma -o $@ $^ + +virt-top.opt: $(XOBJS) + ocamlfind ocamlopt \ + $(OCAMLOPTPACKAGES) $(OCAMLOPTFLAGS) $(OCAMLOPTLIBS) \ + ../libvirt/mllibvirt.cmxa -cclib -lncurses -o $@ $^ + +# Manual page. +ifeq ($(HAVE_PERLDOC),perldoc) +virt-top.1: virt-top.pod + pod2man -c "Virtualization Support" --release "$(PACKAGE)-$(VERSION)" \ + $< > $@ + +virt-top.txt: virt-top.pod + pod2text $< > $@ +endif + +install: + if [ -x virt-top.opt ]; then \ + mkdir -p $(DESTDIR)$(bindir); \ + $(INSTALL) -m 0755 virt-top.opt $(DESTDIR)$(bindir)/virt-top; \ + fi + +include ../Make.rules diff --git a/virt-top/Makefile.in b/virt-top/Makefile.in new file mode 100644 index 0000000..e1cb75f --- /dev/null +++ b/virt-top/Makefile.in @@ -0,0 +1,79 @@ +# $Id: Makefile.in,v 1.6 2007/08/23 11:09:19 rjones Exp $ + +PACKAGE := @PACKAGE_NAME@ +VERSION := @PACKAGE_VERSION@ + +INSTALL := @INSTALL@ +HAVE_PERLDOC := @HAVE_PERLDOC@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ + +pkg_curses = @pkg_curses@ +pkg_xml_light = @pkg_xml_light@ +pkg_csv = @pkg_csv@ + +OCAMLCPACKAGES := -package unix,extlib,curses + +OBJS := virt_top.cmo +ifeq ($(pkg_xml_light),yes) +OBJS += virt_top_xml.cmo +OCAMLCPACKAGES := $(OCAMLCPACKAGES),xml-light +endif +ifeq ($(pkg_csv),yes) +OBJS += virt_top_csv.cmo +OCAMLCPACKAGES := $(OCAMLCPACKAGES),csv +endif +OBJS += virt_top_main.cmo + +XOBJS := $(OBJS:.cmo=.cmx) + +OCAMLCPACKAGES += -I ../libvirt +OCAMLCFLAGS := -g -w s +OCAMLCLIBS := -linkpkg + +OCAMLOPTPACKAGES := $(OCAMLCPACKAGES) +OCAMLOPTFLAGS := -w s +OCAMLOPTLIBS := $(OCAMLCLIBS) + +export LIBRARY_PATH=../libvirt +export LD_LIBRARY_PATH=../libvirt + +BYTE_TARGETS := virt-top +OPT_TARGETS := virt-top.opt + +ifeq ($(HAVE_PERLDOC),perldoc) +BYTE_TARGETS += virt-top.1 virt-top.txt +endif + +all: $(BYTE_TARGETS) + +opt: $(OPT_TARGETS) + +virt-top: $(OBJS) + ocamlfind ocamlc $(OCAMLCPACKAGES) $(OCAMLCFLAGS) $(OCAMLCLIBS) \ + ../libvirt/mllibvirt.cma -o $@ $^ + +virt-top.opt: $(XOBJS) + ocamlfind ocamlopt \ + $(OCAMLOPTPACKAGES) $(OCAMLOPTFLAGS) $(OCAMLOPTLIBS) \ + ../libvirt/mllibvirt.cmxa -cclib -lncurses -o $@ $^ + +# Manual page. +ifeq ($(HAVE_PERLDOC),perldoc) +virt-top.1: virt-top.pod + pod2man -c "Virtualization Support" --release "$(PACKAGE)-$(VERSION)" \ + $< > $@ + +virt-top.txt: virt-top.pod + pod2text $< > $@ +endif + +install: + if [ -x virt-top.opt ]; then \ + mkdir -p $(DESTDIR)$(bindir); \ + $(INSTALL) -m 0755 virt-top.opt $(DESTDIR)$(bindir)/virt-top; \ + fi + +include ../Make.rules diff --git a/virt-top/README b/virt-top/README new file mode 100644 index 0000000..c3752c6 --- /dev/null +++ b/virt-top/README @@ -0,0 +1,42 @@ +$Id: README,v 1.1 2007/08/30 13:52:40 rjones Exp $ + +The code is structured into these files: + + virt_top.ml + + This is the virt-top program. + + The interesting function is called 'redraw', which is responsible + for redrawing the display on each frame. Another interesting + function is 'start_up' which handles all start-up stuff, eg. + command line arguments, connecting to the hypervisor, enabling + curses. The function 'main_loop' runs the main loop and has + sub-functions to deal with keypresses, help screens and so on. + + virt_top_xml.ml + + Any code which needs the optional xml-light library goes + in here. Mainly for parsing domain XML descriptions to get + the list of block devices and network interfaces. + + The reason for having it in a separate file is so that we + don't depend on xml-light. + + virt_top_csv.ml + + Any code which need the optional ocaml-csv library goes + in here. This implements the --csv command line option. + + virt_top_main.ml + + This is just a small bit of code to glue whatever modules + (Virt_top + Virt_top_xml? + Virt_top_csv?) together. + +The man-page is generated from the single file: + + virt-top.pod + +which generates (using perldoc) the following: + + virt-top.1 + virt-top.txt diff --git a/virt-top/virt-top.1 b/virt-top/virt-top.1 new file mode 100644 index 0000000..7e9c5d4 --- /dev/null +++ b/virt-top/virt-top.1 @@ -0,0 +1,328 @@ +.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "VIRT-TOP 1" +.TH VIRT-TOP 1 "2007-08-30" "ocaml-libvirt-0.3.2.6" "Virtualization Support" +.SH "NAME" +virt\-top \- 'top'\-like utility for virtualization stats +.SH "SUMMARY" +.IX Header "SUMMARY" +virt-top [\-options] +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +virt-top is a \fItop\fR\|(1)\-like utility for showing stats of virtualized +domains. Many keys and command line options are the same as for +ordinary \fItop\fR. +.PP +It uses libvirt so it is capable of showing stats across a variety of +different virtualization systems. +.SH "OPTIONS" +.IX Header "OPTIONS" +.IP "\fB\-1\fR" 4 +.IX Item "-1" +Display physical CPUs by default (instead of domains). +When virt-top is running, use the \fI1\fR key to toggle +between physical CPUs and domains display. +.IP "\fB\-2\fR" 4 +.IX Item "-2" +Display network interfaces by default (instead of domains). +When virt-top is running, use the \fI2\fR key to toggle +between network interfaces and domains display. +.IP "\fB\-3\fR" 4 +.IX Item "-3" +Display block devices (virtual disks) by default (instead of domains). +When virt-top is running, use the \fI3\fR key to toggle +between block devices and domains display. +.IP "\fB\-b\fR" 4 +.IX Item "-b" +Batch mode. In this mode keypresses are ignored. +.IP "\fB\-c uri\fR or \fB\-\-connect uri\fR" 4 +.IX Item "-c uri or --connect uri" +Connect to \s-1URI\s0 given. The default is to connect to the Xen +hypervisor. +.IP "\fB\-d delay\fR" 4 +.IX Item "-d delay" +Set the delay between screen updates in seconds. +The default is 3.0 seconds. You can change this +while virt-top is running by pressing either \fIs\fR or \fId\fR key. +.IP "\fB\-n iterations\fR" 4 +.IX Item "-n iterations" +Set the number of iterations to run. The default +is to run continuously. +.IP "\fB\-o sort\fR" 4 +.IX Item "-o sort" +Set the sort order to one of: +\&\fBcpu\fR (sort by \f(CW%CPU\fR used), +\&\fBmem\fR (sort by memory used), +\&\fBtime\fR (sort by total time), +\&\fBid\fR (sort by domain \s-1ID\s0), +\&\fBname\fR (sort by domain name), +\&\fBnetrx\fR (sort by network received bytes), +\&\fBnettx\fR (sort by network transmitted bytes), +\&\fBblockrdrq\fR (sort by block device [disk] read requests), +\&\fBblockwrrq\fR (sort by block device [disk] write requests). +.Sp +While virt-top is running you can change the sort +order using keys \fIP\fR (cpu), \fIM\fR (memory), +\&\fIT\fR (total time), \fIN\fR (domain \s-1ID\s0), +\&\fIF\fR (interactively select the sort field). +.IP "\fB\-s\fR" 4 +.IX Item "-s" +Secure mode. Currently this does nothing. +.IP "\fB\-\-hist\-cpu secs\fR" 4 +.IX Item "--hist-cpu secs" +Set the time in seconds between updates of the historical +\&\f(CW%CPU\fR at the top right of the display. +.IP "\fB\-\-csv file.csv\fR" 4 +.IX Item "--csv file.csv" +Write the statistics to file \fIfile.csv\fR. First a header is written +showing the statistics being recorded in each column, then one line is +written for each screen update. The \s-1CSV\s0 file can be loaded directly +by most spreadsheet programs. +.Sp +Currently the statistics which this records vary between releases of +virt-top (but the column headers will stay the same, so you can use +those to process the \s-1CSV\s0 file). +.Sp +Not every version of virt-top supports \s-1CSV\s0 output \- it depends how the +program was compiled (see \fI\s-1README\s0\fR file in the source distribution +for details). +.IP "\fB\-\-debug filename\fR" 4 +.IX Item "--debug filename" +Send debug and error messages to \fIfilename\fR. +To send error messages to syslog you can do: +.Sp +.Vb 1 +\& virt-top --debug >(logger -t virt-top) +.Ve +.Sp +See also \s-1REPORTING\s0 \s-1BUGS\s0 below. +.IP "\fB\-\-help\fR" 4 +.IX Item "--help" +Display usage summary. +.SH "KEYS" +.IX Header "KEYS" +Note that keys are case sensitive. For example use upper-case \fIP\fR +(shift P) to sort by \f(CW%CPU\fR. \fI^\fR before a key means a Ctrl key, so +\&\fI^L\fR is Ctrl L. +.IP "\fIspace\fR or \fI^L\fR" 4 +.IX Item "space or ^L" +Updates the display. +.IP "\fIq\fR" 4 +.IX Item "q" +Quits the program. +.IP "\fIh\fR" 4 +.IX Item "h" +Displays help. +.IP "\fIs\fR or \fId\fR" 4 +.IX Item "s or d" +Change the delay between screen updates. +.IP "\fI0\fR (number 0)" 4 +.IX Item "0 (number 0)" +Show the normal list of domains display. +.IP "\fI1\fR (number 1)" 4 +.IX Item "1 (number 1)" +Toggle into showing physical CPUs. If pressed +again toggles back to showing domains (the normal +display). +.IP "\fI2\fR" 4 +.IX Item "2" +Toggle into showing network interfaces. If pressed +again toggles back to showing domains. +.IP "\fI3\fR" 4 +.IX Item "3" +Toggle into showing block devices (virtual disks). If pressed again +toggles back to showing domains. +.IP "\fIP\fR" 4 +.IX Item "P" +Sort by \f(CW%CPU\fR. +.IP "\fIM\fR" 4 +.IX Item "M" +Sort by memory. +.IP "\fIT\fR" 4 +.IX Item "T" +Sort by total time. +.IP "\fIN\fR" 4 +.IX Item "N" +Sort by domain \s-1ID\s0. +.IP "\fIF\fR" 4 +.IX Item "F" +Select the sort field interactively (there are other +sort fields you can choose using this key). +.SH "SEE ALSO" +.IX Header "SEE ALSO" +\&\fItop\fR\|(1), +\&\fIvirsh\fR\|(1), +\&\fIxm\fR\|(1), +\&\fIxentop\fR\|(1), +, +, + +.SH "AUTHORS" +.IX Header "AUTHORS" +Richard W.M. Jones +.SH "REPORTING BUGS" +.IX Header "REPORTING BUGS" +Bugs can be viewed on the Red Hat Bugzilla page: +. +.PP +If you find a bug in virt\-top, please follow these steps to report it: +.IP "1. Check for existing bug reports" 4 +.IX Item "1. Check for existing bug reports" +Go to and search for similar bugs. +Someone may already have reported the same bug, and they may even +have fixed it. +.IP "2. Capture debug and error messages" 4 +.IX Item "2. Capture debug and error messages" +Run +.Sp +.Vb 1 +\& virt-top --debug virt-top.log +.Ve +.Sp +and keep \fIvirt\-top.log\fR. It contains error messages which you +should submit with your bug report. +.IP "3. Get version of virt-top and version of libvirt." 4 +.IX Item "3. Get version of virt-top and version of libvirt." +In virt\-top, press the \fIh\fR (help) key, and write down the version of +virt-top and the version of libvirt. They are shown in the first +line. +.IP "4. Submit a bug report." 4 +.IX Item "4. Submit a bug report." +Go to and enter a new bug. +Please describe the problem in as much detail as possible. +.Sp +Remember to include the version numbers (step 3) and the debug +messages file (step 2). +.IP "5. Assign the bug to rjones @ redhat.com" 4 +.IX Item "5. Assign the bug to rjones @ redhat.com" +Assign or reassign the bug to \fBrjones @ redhat.com\fR (without the +spaces). You can also send me an email with the bug number if you +want a faster response. diff --git a/virt-top/virt-top.pod b/virt-top/virt-top.pod new file mode 100644 index 0000000..fe8ba91 --- /dev/null +++ b/virt-top/virt-top.pod @@ -0,0 +1,244 @@ +=head1 NAME + +virt-top - 'top'-like utility for virtualization stats + +=head1 SUMMARY + +virt-top [-options] + +=head1 DESCRIPTION + +virt-top is a L-like utility for showing stats of virtualized +domains. Many keys and command line options are the same as for +ordinary I. + +It uses libvirt so it is capable of showing stats across a variety of +different virtualization systems. + +=head1 OPTIONS + +=over 4 + +=item B<-1> + +Display physical CPUs by default (instead of domains). +When virt-top is running, use the I<1> key to toggle +between physical CPUs and domains display. + +=item B<-2> + +Display network interfaces by default (instead of domains). +When virt-top is running, use the I<2> key to toggle +between network interfaces and domains display. + +=item B<-3> + +Display block devices (virtual disks) by default (instead of domains). +When virt-top is running, use the I<3> key to toggle +between block devices and domains display. + +=item B<-b> + +Batch mode. In this mode keypresses are ignored. + +=item B<-c uri> or B<--connect uri> + +Connect to URI given. The default is to connect to the Xen +hypervisor. + +=item B<-d delay> + +Set the delay between screen updates in seconds. +The default is 3.0 seconds. You can change this +while virt-top is running by pressing either I or I key. + +=item B<-n iterations> + +Set the number of iterations to run. The default +is to run continuously. + +=item B<-o sort> + +Set the sort order to one of: +B (sort by %CPU used), +B (sort by memory used), +B