1tcpcong(8) System Manager's Manual tcpcong(8)
2
3
4
6 tcpcong - Measure tcp congestion state duration. Uses Linux eBPF/bcc.
7
9 tcpcong [-h] [-T] [-L] [-R] [-u] [-d] [interval] [outputs]
10
12 this tool measures tcp sockets congestion control status duration, and
13 prints a summary of tcp congestion state durations along with the num‐
14 ber of total state changes.
15
16 It uses dynamic tracing of kernel tcp congestion control status updat‐
17 ing functions, and will need to be updated to match kernel changes.
18
19 The traced functions are only called when there is congestion state up‐
20 date, and therefore have low overhead. we also use BPF map to store
21 traced data to reduce overhead. See the OVERHEAD section for more de‐
22 tails. Since this uses BPF, only the root user can use this tool.
23
25 CONFIG_BPF and bcc.
26
28 -h Print usage message.
29
30 -T Include a timestamp column.
31
32 -L Specify local tcp port range.
33
34 -R Specify remote tcp port range.
35
36 -u Output in microseconds.
37
38 -d Show congestion status duration distribution as histograms.
39
41 Show all tcp sockets congestion status duration until Ctrl-C:
42 # tcpcongestdura
43
44 Show all tcp sockets congestion status duration every 1 second and 10
45 times:
46 # tcpcong 1 10
47
48 Show only local port 3000-3006 congestion status duration every 1 sec‐
49 ond:
50 # tcpcong -L 3000-3006 1
51
52 Show only remote port 5000-5005 congestion status duration every 1 sec‐
53 ond:
54 # tcpcong -R 5000-5005 1
55
56 Show 1 second summaries, printed in microseconds, with timestamps:
57 # tcpcong -uT 1
58
59 Show all tcp sockets congestion status duration as histograms:
60 # tcpcong -d
61
63 LAddrPort
64 local ip address and tcp socket port.
65
66 RAddrPort
67 remote ip address and tcp socket port.
68
69 Open_us
70 Total duration in open status for microseconds.
71
72 Dod_us Total duration in disorder status for microseconds.
73
74 Rcov_us
75 Total duration in recovery status for microseconds.
76
77 Cwr_us Total duration in cwr status for microseconds.
78
79 Los_us Total duration in loss status for microseconds.
80
81 Open_ms
82 Total duration in open status for milliseconds.
83
84 Dod_ms Total duration in disorder status for milliseconds.
85
86 Rcov_ms
87 Total duration in recovery status for milliseconds.
88
89 Cwr_ms Total duration in cwr status for milliseconds.
90
91 Loss_ms
92 Total duration in loss status for milliseconds.
93
94 Chgs Total number of status change.
95
96 usecs Range of microseconds for this bucket.
97
98 msecs Range of milliseconds for this bucket.
99
100 count Number of congestion status in this time range.
101
102 distribution
103 ASCII representation of the distribution (the count column).
104
106 This traces the kernel tcp congestion status change functions. As
107 called rate per second of these functions per socket is low(<10000),
108 the overhead is also expected to be negligible. If you have an applica‐
109 tion that will create thousands of tcp connections, then test and un‐
110 derstand overhead before use.
111
113 This is from bcc.
114
115 https://github.com/iovisor/bcc
116
117 Also look in the bcc distribution for a companion _examples.txt file
118 containing example usage, output, and commentary for this tool.
119
121 Linux
122
124 Unstable - in development.
125
127 jacky gan
128
130 tcpretrans(8), tcpconnect(8), tcptop(8), tcpdrop(8)
131
132
133
134USER COMMANDS 2022-01-27 tcpcong(8)