docs: Explain how to debug libvirt initialization problems (RHBZ#680031).
[virt-top.git] / virt-top / virt-top.pod
old mode 100644 (file)
new mode 100755 (executable)
index a708357..63aa30a
@@ -43,8 +43,21 @@ 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.
+Connect to the libvirt URI given.
+
+To connect to QEMU/KVM you would normally do I<-c qemu:///system>
+
+To connect to Xen on the same host, do I<-c xen:///>
+
+To connect to libvirtd on a remote machine you would normally do
+I<-c qemu://host/system>
+
+If this option is not given then virt-top connects by default
+to whatever is the default hypervisor for libvirt, although
+this can be overridden by setting environment variables.
+
+See the libvirt documentation at L<http://libvirt.org/uri.html>
+for further information.
 
 =item B<-d delay>
 
@@ -61,7 +74,7 @@ is to run continuously.
 
 Set the sort order to one of:
 B<cpu> (sort by %CPU used),
-B<mem> (sort by memory used),
+B<mem> (sort by total memory),
 B<time> (sort by total time),
 B<id> (sort by domain ID),
 B<name> (sort by domain name),
@@ -114,6 +127,10 @@ I<output.csv.00>, I<output.csv.01> etc.
 
 Disable domain CPU stats in CSV output.
 
+=item B<--no-csv-mem>
+
+Disable domain memory stats in CSV output.
+
 =item B<--no-csv-block>
 
 Disable domain block device stats in CSV output.
@@ -145,6 +162,15 @@ Do not read any init file.
 Script mode.  There will be no user interface.  This is most useful
 when used together with the I<--csv> and I<-n> options.
 
+=item B<--stream>
+
+Stream mode.  All output is sent to stdout.  This can be used from
+shell scripts etc.  There is no user interface.
+
+=item B<--block-in-bytes>
+
+Show I/O statistics in Bytes. Default is shown in the number of Requests.
+
 =item B<--end-time time>
 
 The program will exit at the I<time> given.
@@ -188,6 +214,10 @@ for details).
 
 Display usage summary.
 
+=item B<--version>
+
+Display version number and exit.
+
 =back
 
 =head1 KEYS
@@ -214,6 +244,10 @@ Displays help.
 
 Change the delay between screen updates.
 
+=item I<B>
+
+Toggle Block I/O statistics so they are shown in either bytes or requests.
+
 =item I<0> (number 0)
 
 Show the normal list of domains display.
@@ -240,7 +274,8 @@ Sort by %CPU.
 
 =item I<M>
 
-Sort by memory.
+Sort by total memory.  Note that this shows the total memory
+allocated to the guest, not the memory being used.
 
 =item I<T>
 
@@ -320,6 +355,10 @@ Enables CSV output to the named file.
 
 Enable or disable domain CPU stats in CSV output.
 
+=item B<csv-mem> I<true|false>
+
+Enable or disable domain memory stats in CSV output.
+
 =item B<csv-block> I<true|false>
 
 Enable or disable domain block device stats in CSV output.
@@ -340,6 +379,14 @@ Sets secure mode.
 
 Sets script mode.
 
+=item B<stream> I<true|false>
+
+Sets stream mode.
+
+=item B<block-in-bytes> I<true|false>
+
+Show block device statistics in bytes.
+
 =item B<end-time> I<time>
 
 Set the time at which the program exits.  See above for the
@@ -352,19 +399,52 @@ init file.
 
 =back
 
-
 Note that in the current implementation, options specified in
 the init file override options specified on the command line.
 This is a bug and this behaviour may change in the future.
 
+=head1 NOTES
+
+=head2 Block I/O statistics
+
+This I/O value is the amount of I/O since the previous iteration
+of virt-top. To calculate speed of I/O, you should divide
+the number by delay secs.
+
+=head2 NETWORK RX BYTES AND PACKETS
+
+Libvirt/virt-top has no way to know that a packet transmitted to a
+guest was received (eg. if the guest is not listening).  In the
+network RX stats, virt-top reports the packets transmitted to the
+guest, on the basis that the guest might receive them.
+
+In particular this includes broadcast packets.  Because of the way
+that Linux bridges work, if the guest is connected to a bridge, it
+will probably see a steady "background noise" of RX packets even when
+the network interface is idle or down.  These are caused by STP
+packets generated by the bridge.
+
+=head2 DEBUGGING LIBVIRT ISSUES
+
+virt-top tries to turn libvirt errors into informative messages.
+However if libvirt initialization fails then this is not possible.
+Instead you will get an obscure error like:
+
+ libvir: error : Unknown failure
+ Fatal error: exception Libvirt.Virterror(...)
+
+To see the cause of libvirt errors in more detail, enable libvirt
+debugging by setting this environment variable:
+
+ export LIBVIRT_DEBUG=1
+
 =head1 SEE ALSO
 
 L<top(1)>,
 L<virsh(1)>,
-L<xm(1)>,
-L<xentop(1)>,
+L<http://www.libvirt.org/ocaml/>,
 L<http://www.libvirt.org/>,
-L<http://et.redhat.com/~rjones/>,
+L<http://people.redhat.com/~rjones/>,
 L<http://caml.inria.fr/>
 
 =head1 AUTHORS
@@ -373,7 +453,7 @@ Richard W.M. Jones <rjones @ redhat . com>
 
 =head1 COPYRIGHT
 
-(C) Copyright 2007 Red Hat Inc., Richard W.M. Jones
+(C) Copyright 2007-2011 Red Hat Inc., Richard W.M. Jones
 http://libvirt.org/
 
 This program is free software; you can redistribute it and/or modify
@@ -416,9 +496,12 @@ should submit with your bug report.
 
 =item 3. Get version of virt-top and version of libvirt.
 
-In virt-top, press the I<h> (help) key, and write down the version of
-virt-top and the version of libvirt.  They are shown in the first
-line.
+Use:
+
+ virt-top --version
+
+If you can get the precise version of libvirt you are using
+then that too is helpful.
 
 =item 4. Submit a bug report.
 
@@ -435,5 +518,3 @@ spaces).  You can also send me an email with the bug number if you
 want a faster response.
 
 =back
-
-=end