de0681e2b3c1be2fe181f44e532e4f5388e7f497
[virt-top.git] / virt-top / virt-top.txt
1 NAME
2     virt-top - 'top'-like utility for virtualization stats
3
4 SUMMARY
5     virt-top [-options]
6
7 DESCRIPTION
8     virt-top is a top(1)-like utility for showing stats of virtualized
9     domains. Many keys and command line options are the same as for ordinary
10     *top*.
11
12     It uses libvirt so it is capable of showing stats across a variety of
13     different virtualization systems.
14
15 OPTIONS
16     -1  Display physical CPUs by default (instead of domains). When virt-top
17         is running, use the *1* key to toggle between physical CPUs and
18         domains display.
19
20     -2  Display network interfaces by default (instead of domains). When
21         virt-top is running, use the *2* key to toggle between network
22         interfaces and domains display.
23
24     -3  Display block devices (virtual disks) by default (instead of
25         domains). When virt-top is running, use the *3* key to toggle
26         between block devices and domains display.
27
28     -b  Batch mode. In this mode keypresses are ignored.
29
30     -c uri or --connect uri
31         Connect to URI given. The default is to connect to the Xen
32         hypervisor.
33
34         To connect to QEMU/KVM you would normally do *-c qemu:///system*
35
36         To connect to libvirtd on a remote machine you would normally do *-c
37         xen://host/*
38
39         Full details on connection URIs is available at
40         <http://libvirt.org/uri.html>
41
42     -d delay
43         Set the delay between screen updates in seconds. The default is 3.0
44         seconds. You can change this while virt-top is running by pressing
45         either *s* or *d* key.
46
47     -n iterations
48         Set the number of iterations to run. The default is to run
49         continuously.
50
51     -o sort
52         Set the sort order to one of: cpu (sort by %CPU used), mem (sort by
53         total memory), time (sort by total time), id (sort by domain ID),
54         name (sort by domain name), netrx (sort by network received bytes),
55         nettx (sort by network transmitted bytes), blockrdrq (sort by block
56         device [disk] read requests), blockwrrq (sort by block device [disk]
57         write requests).
58
59         While virt-top is running you can change the sort order using keys
60         *P* (cpu), *M* (memory), *T* (total time), *N* (domain ID), *F*
61         (interactively select the sort field).
62
63     -s  Secure mode. Currently this does nothing.
64
65     --hist-cpu secs
66         Set the time in seconds between updates of the historical %CPU at
67         the top right of the display.
68
69     --csv file.csv
70         Write the statistics to file *file.csv*. First a header is written
71         showing the statistics being recorded in each column, then one line
72         is written for each screen update. The CSV file can be loaded
73         directly by most spreadsheet programs.
74
75         Currently the statistics which this records vary between releases of
76         virt-top (but the column headers will stay the same, so you can use
77         those to process the CSV file).
78
79         Not every version of virt-top supports CSV output - it depends how
80         the program was compiled (see *README* file in the source
81         distribution for details).
82
83         To save space you can compress your CSV files (if your shell
84         supports this feature, eg. *bash*):
85
86          virt-top --csv >(gzip -9 > output.csv.gz)
87
88         You can use a similar trick to split the CSV file up. In this
89         example the CSV file is split every 1000 lines into files called
90         *output.csv.00*, *output.csv.01* etc.
91
92          virt-top --csv >(split -d -l 1000 - output.csv.)
93
94     --no-csv-cpu
95         Disable domain CPU stats in CSV output.
96
97     --no-csv-block
98         Disable domain block device stats in CSV output.
99
100     --no-csv-net
101         Disable domain network interface stats in CSV output.
102
103     --debug filename
104         Send debug and error messages to *filename*. To send error messages
105         to syslog you can do:
106
107          virt-top --debug >(logger -t virt-top)
108
109         See also REPORTING BUGS below.
110
111     --init-file filename
112         Read *filename* as the init file instead of the default which is
113         *$HOME/.virt-toprc*. See also INIT FILE below.
114
115     --no-init-file
116         Do not read any init file.
117
118     --script
119         Script mode. There will be no user interface. This is most useful
120         when used together with the *--csv* and *-n* options.
121
122     --end-time time
123         The program will exit at the *time* given.
124
125         The time may be given in one of the following formats:
126
127         *YYYY-MM-DD HH:MM:SS*
128             End time is the date and time given.
129
130         *HH:MM:SS*
131             End time is the time given, today.
132
133         *+HH:MM:SS*
134             End time is HH hours, MM minutes, SS seconds in the future
135             (counted from the moment that program starts).
136
137         *+secs*
138             End time is *secs* seconds in the future.
139
140         For example to run the program for 3 minutes you could do:
141
142          virt-top --end-time +00:03:00
143
144         or:
145
146          virt-top --end-time +180
147
148         Not every version of virt-top supports this option - it depends how
149         the program was compiled (see *README* file in the source
150         distribution for details).
151
152     --help
153         Display usage summary.
154
155     --version
156         Display version number and exit.
157
158 KEYS
159     Note that keys are case sensitive. For example use upper-case *P* (shift
160     P) to sort by %CPU. *^* before a key means a Ctrl key, so *^L* is Ctrl
161     L.
162
163     *space* or *^L*
164         Updates the display.
165
166     *q* Quits the program.
167
168     *h* Displays help.
169
170     *s* or *d*
171         Change the delay between screen updates.
172
173     *0* (number 0)
174         Show the normal list of domains display.
175
176     *1* (number 1)
177         Toggle into showing physical CPUs. If pressed again toggles back to
178         showing domains (the normal display).
179
180     *2* Toggle into showing network interfaces. If pressed again toggles
181         back to showing domains.
182
183     *3* Toggle into showing block devices (virtual disks). If pressed again
184         toggles back to showing domains.
185
186     *P* Sort by %CPU.
187
188     *M* Sort by total memory. Note that this shows the total memory
189         allocated to the guest, not the memory being used.
190
191     *T* Sort by total time.
192
193     *N* Sort by domain ID.
194
195     *F* Select the sort field interactively (there are other sort fields you
196         can choose using this key).
197
198     *W* This creates or overwrites the init file with the current settings.
199
200         This key is disabled if *--no-init-file* was specified on the
201         command line or if *overwrite-init-file false* is given in the init
202         file.
203
204 INIT FILE
205     When virt-top starts up, it reads initial settings from the file
206     *.virt-toprc* in the user's home directory.
207
208     The name of this file may be overridden using the *--init-file filename*
209     command line option or may be disabled entirely using *--no-init-file*.
210
211     The init file has a simple format. Blank lines and comments beginning
212     with *#* are ignored. Everything else is a set of *key value* pairs,
213     described below.
214
215     display *task|pcpu|block|net*
216         Sets the major display mode to one of *task* (tasks, the default),
217         *pcpu* (physical CPUs), *block* (block devices), or *net* (network
218         interfaces).
219
220     delay *secs*
221         Sets the delay between display updates in seconds.
222
223     hist-cpu *secs*
224         Sets the historical CPU delay in seconds.
225
226     iterations *n*
227         Sets the number of iterations to run before we exit. Setting this to
228         *-1* means to run continuously.
229
230     sort *cpu|mem|time|id|name|...*
231         Sets the sort order. The option names are the same as for the
232         command line *-o* option.
233
234     connect *uri*
235         Sets the default connection URI.
236
237     debug *filename*
238         Sets the default filename to use for debug and error messages.
239
240     csv *filename*
241         Enables CSV output to the named file.
242
243     csv-cpu *true|false*
244         Enable or disable domain CPU stats in CSV output.
245
246     csv-block *true|false*
247         Enable or disable domain block device stats in CSV output.
248
249     csv-net *true|false*
250         Enable or disable domain network interface stats in CSV output.
251
252     batch *true|false*
253         Sets batch mode.
254
255     secure *true|false*
256         Sets secure mode.
257
258     script *true|false*
259         Sets script mode.
260
261     end-time *time*
262         Set the time at which the program exits. See above for the time
263         formats supported.
264
265     overwrite-init-file *false*
266         If set to *false* then the *W* key will not overwrite the init file.
267
268     Note that in the current implementation, options specified in the init
269     file override options specified on the command line. This is a bug and
270     this behaviour may change in the future.
271
272 NOTES
273   NETWORK RX BYTES AND PACKETS
274     Libvirt/virt-top has no way to know that a packet transmitted to a guest
275     was received (eg. if the guest is not listening). In the network RX
276     stats, virt-top reports the packets transmitted to the guest, on the
277     basis that the guest might receive them.
278
279     In particular this includes broadcast packets. Because of the way that
280     Linux bridges work, if the guest is connected to a bridge, it will
281     probably see a steady "background noise" of RX packets even when the
282     network interface is idle or down. These are caused by STP packets
283     generated by the bridge.
284
285 SEE ALSO
286     top(1), virsh(1), <http://www.libvirt.org/ocaml/>,
287     <http://www.libvirt.org/>, <http://people.redhat.com/~rjones/>,
288     <http://caml.inria.fr/>
289
290 AUTHORS
291     Richard W.M. Jones <rjones @ redhat . com>
292
293 COPYRIGHT
294     (C) Copyright 2007-2011 Red Hat Inc., Richard W.M. Jones
295     http://libvirt.org/
296
297     This program is free software; you can redistribute it and/or modify it
298     under the terms of the GNU General Public License as published by the
299     Free Software Foundation; either version 2 of the License, or (at your
300     option) any later version.
301
302     This program is distributed in the hope that it will be useful, but
303     WITHOUT ANY WARRANTY; without even the implied warranty of
304     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
305     Public License for more details.
306
307     You should have received a copy of the GNU General Public License along
308     with this program; if not, write to the Free Software Foundation, Inc.,
309     675 Mass Ave, Cambridge, MA 02139, USA.
310
311 REPORTING BUGS
312     Bugs can be viewed on the Red Hat Bugzilla page:
313     <https://bugzilla.redhat.com/>.
314
315     If you find a bug in virt-top, please follow these steps to report it:
316
317     1. Check for existing bug reports
318         Go to <https://bugzilla.redhat.com/> and search for similar bugs.
319         Someone may already have reported the same bug, and they may even
320         have fixed it.
321
322     2. Capture debug and error messages
323         Run
324
325          virt-top --debug virt-top.log
326
327         and keep *virt-top.log*. It contains error messages which you should
328         submit with your bug report.
329
330     3. Get version of virt-top and version of libvirt.
331         Use:
332
333          virt-top --version
334
335         If you can get the precise version of libvirt you are using then
336         that too is helpful.
337
338     4. Submit a bug report.
339         Go to <https://bugzilla.redhat.com/> and enter a new bug. Please
340         describe the problem in as much detail as possible.
341
342         Remember to include the version numbers (step 3) and the debug
343         messages file (step 2).
344
345     5. Assign the bug to rjones @ redhat.com
346         Assign or reassign the bug to rjones @ redhat.com (without the
347         spaces). You can also send me an email with the bug number if you
348         want a faster response.
349