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 is
31       not possible with ifpps, because overall networking statistics are  its
32       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
39       number top heavy hitters. The topmost heavy hitter CPU will  be  marked
40       with  “+”.   The  least  heavy  hitter  will always be displayed and is
41       marked with “-”. In addition, the average for  all  the  above  per-CPU
42       data  is shown. Optionally the median values can be displayed using the
43       “-m” command 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, wlan0.
51
52   -n, --num-cpus
53       Set  maximum  number of top hitter CPUs (in terms of time spent in sys‐
54       tem/user mode) to display in ncurses mode, default is 10.
55
56   -t <time>, --interval <time>
57       Statistics refresh interval in milliseconds, default is 1000ms.
58
59   -c, --csv
60       Output (once) the ncurses data  to  the  terminal  as  gnuplot(1)-ready
61       data.
62
63   -l, --loop
64       Continuously  output  the  terminal data after a refresh interval. This
65       option is only available if option “-c” is given. For “-l” it  is  usu‐
66       ally  recommended to redirect the output into a file that is to be pro‐
67       cessed later with gnuplot(1).
68
69   -m, --median
70       Show median values across all CPUs for CPU load, interrupts (per inter‐
71       val and absolute) and software interrupts.
72
73   -o, --omit-header
74       Omit  printing the CSV header. This option is only available if “-c” is
75       given.
76
77   -p, --promisc
78       Turn on promiscuous mode for the given networking device.
79
80   -P, --percentage
81       Show percentage of current throughput in relation to  theoretical  line
82       rate.
83
84   -W, --no-warn
85       Suppress  possible warnings in the ncurses output, e.g. about a too low
86       sampling interval that could cause performance regression.
87
88   -v, --version
89       Show version information.
90
91   -h, --help
92       Show user help.
93

USAGE EXAMPLE

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

NOTE

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

HISTORY

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

SEE ALSO

119       netsniff-ng(8),    trafgen(8),   mausezahn(8),   bpfc(8),   flowtop(8),
120       astraceroute(8), curvetun(8)
121

AUTHOR

123       Manpage was written by Daniel Borkmann.
124

COLOPHON

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