1IFPPS(8)                      netsniff-ng toolkit                     IFPPS(8)
2
3
4

NAME

6       ifpps - top-like networking and system statistics
7

SYNOPSIS

9       ifpps { [options] | [device] }
10

DESCRIPTION

12       ifpps  is a small utility which periodically provides top-like network‐
13       ing and system statistics from  the  kernel.  ifpps  gathers  its  data
14       directly from procfs files and does not make use of any user space mon‐
15       itoring libraries which would falsify statistics under high load.
16
17       For instance, consider the following scenario: two  directly  connected
18       Linux machines with Intel Core 2 Quad Q6600 2.40GHz CPUs, 4 GB RAM, and
19       an Intel 82566DC-2 Gigabit Ethernet NIC are used for performance evalu‐
20       ation.  One machine generates 64 byte network packets by using the ker‐
21       nel space packet generator pktgen with a maximum possible packet  rate.
22       The other machine displays statistics about incoming network packets by
23       using i) iptraf(8) and ii) ifpps.
24
25       iptraf which incorporates pcap(3)  shows  an  average  packet  rate  of
26       246,000  pps while on the other hand ifpps shows an average packet rate
27       of 1,378,000 pps. Hence, due to packet copies and deferring  statistics
28       creation into user space, a measurement error of approximately 460 per‐
29       cent occurs. Tools like iptraf might display much more information such
30       as  TCP  per flow statistics (hence the use of the pcap library).  This
31       is not possible with ifpps, because overall networking  statistics  are
32       its focus; statistics, which are also fairly reliable under high packet
33       load.
34
35       ifpps also periodically displays CPU load, interrupt,  software  inter‐
36       rupt data per sample interval as well as total interrupts, all per CPU.
37       In case the number of CPUs exceeds 5 or the  number  specified  by  the
38       user with the -n command line option, ifpps will only display this num‐
39       ber top heavy hitters. The topmost heavy hitter CPU will be marked with
40       “+”.   The  least  heavy  hitter will always be displayed and is marked
41       with “-”. In addition, the average for all the above  per-CPU  data  is
42       shown.  Optionally the median values can be displayed using the -m com‐
43       mand line option.
44
45       ifpps also supports directly the gnuplot(1) data  sample  format.  This
46       facilitates creation of gnuplot figures from ifpps time series.
47

OPTIONS

49       -d <netdev>, --dev <netdev>
50              Networking  device  to  fetch statistics from, for example eth0,
51              wlan0.
52
53       -n, --num-cpus
54              Set maximum number of top hitter CPUs (in terms of time spent in
55              system/user mode) to display in ncurses mode, default is 10.
56
57       -t <time>, --interval <time>
58              Statistics refresh interval in milliseconds, default is 1000ms.
59
60       -c, --csv
61              Output   (once)  the  ncurses  data  to  the  terminal  as  gnu‐
62              plot(1)-ready data.
63
64       -l, --loop
65              Continuously output the terminal data after a refresh  interval.
66              This  option  is only available if option -c is given. For -l it
67              is usually recommended to redirect the output into a  file  that
68              is to be processed later with gnuplot(1).
69
70       -m, --median
71              Show median values across all CPUs for CPU load, interrupts (per
72              interval and absolute) and software interrupts.
73
74       -o, --omit-header
75              Omit printing the CSV header. This option is only  available  if
76              -c is given.
77
78       -p, --promisc
79              Turn on promiscuous mode for the given networking device.
80
81       -P, --percentage
82              Show percentage of current throughput in relation to theoretical
83              line rate.
84
85       -W, --no-warn
86              Suppress possible warnings in the ncurses output, e.g.  about  a
87              too  low  sampling interval that could cause performance regres‐
88              sion.
89
90       -v, --version
91              Show version information.
92
93       -h, --help
94              Show user help.
95

USAGE EXAMPLE

97       ifpps eth0
98              Default ncurses output for the eth0 device.
99
100       ifpps -pd eth0
101              Ncurses output for the eth0 device in promiscuous mode.
102
103       ifpps -lpcd wlan0 > plot.dat
104              Continuous terminal output for the wlan0 device  in  promiscuous
105              mode.
106

NOTE

108       On  10Gbit/s  cards or higher, receive and transmit statistics are usu‐
109       ally accumulated at a higher duration interval than 1 second. Thus,  it
110       might  be advisable to alter the timing to a higher accumulation inter‐
111       val for such cards.
112
114       ifpps is licensed under the GNU GPL version 2.0.
115

HISTORY

117       ifpps was originally written for  the  netsniff-ng  toolkit  by  Daniel
118       Borkmann.  It  is currently maintained by Tobias Klauser <tklauser@dis‐
119       tanz.ch> and Daniel Borkmann <dborkma@tik.ee.ethz.ch>.
120

SEE ALSO

122       netsniff-ng(8),   trafgen(8),   mausezahn(8),   bpfc(8),    flowtop(8),
123       astraceroute(8), curvetun(8)
124

AUTHOR

126       Manpage was written by Daniel Borkmann.
127

COLOPHON

129       This  page is part of the Linux netsniff-ng toolkit project. A descrip‐
130       tion of the project, and information about reporting bugs, can be found
131       at http://netsniff-ng.org/.
132
133
134
135Linux                            03 March 2013                        IFPPS(8)
Impressum