xref: /aosp_15_r20/external/bcc/tools/tcpconnlat_example.txt (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1*387f9dfdSAndroid Build Coastguard WorkerDemonstrations of tcpconnlat, the Linux eBPF/bcc version.
2*387f9dfdSAndroid Build Coastguard Worker
3*387f9dfdSAndroid Build Coastguard Worker
4*387f9dfdSAndroid Build Coastguard WorkerThis tool traces the kernel function performing active TCP connections
5*387f9dfdSAndroid Build Coastguard Worker(eg, via a connect() syscall), and shows the latency (time) for the connection
6*387f9dfdSAndroid Build Coastguard Workeras measured locally: the time from SYN sent to the response packet.
7*387f9dfdSAndroid Build Coastguard WorkerFor example:
8*387f9dfdSAndroid Build Coastguard Worker
9*387f9dfdSAndroid Build Coastguard Worker# ./tcpconnlat
10*387f9dfdSAndroid Build Coastguard WorkerPID    COMM         IP SADDR            DADDR            DPORT LAT(ms)
11*387f9dfdSAndroid Build Coastguard Worker1201   wget         4  10.153.223.157   23.23.100.231    80    1.65
12*387f9dfdSAndroid Build Coastguard Worker1201   wget         4  10.153.223.157   23.23.100.231    443   1.60
13*387f9dfdSAndroid Build Coastguard Worker1433   curl         4  10.153.223.157   104.20.25.153    80    0.75
14*387f9dfdSAndroid Build Coastguard Worker1690   wget         4  10.153.223.157   66.220.156.68    80    1.10
15*387f9dfdSAndroid Build Coastguard Worker1690   wget         4  10.153.223.157   66.220.156.68    443   0.95
16*387f9dfdSAndroid Build Coastguard Worker1690   wget         4  10.153.223.157   66.220.156.68    443   0.99
17*387f9dfdSAndroid Build Coastguard Worker2852   curl         4  10.153.223.157   23.101.17.61     80    250.86
18*387f9dfdSAndroid Build Coastguard Worker20337  python2.7    6  1234:ab12:2040:5020:2299:0:5:0 1234:ab12:20:9f1d:2299:dde9:0:f5 7001  62.20
19*387f9dfdSAndroid Build Coastguard Worker21588  nc           6  ::1              ::1              80    0.05
20*387f9dfdSAndroid Build Coastguard Worker[...]
21*387f9dfdSAndroid Build Coastguard Worker
22*387f9dfdSAndroid Build Coastguard WorkerThe first line shows a connection from the "wget" process to the IPv4
23*387f9dfdSAndroid Build Coastguard Workerdestination address 23.23.100.231, port 80. This took 1.65 milliseconds: the
24*387f9dfdSAndroid Build Coastguard Workertime from the SYN to the response.
25*387f9dfdSAndroid Build Coastguard Worker
26*387f9dfdSAndroid Build Coastguard WorkerTCP connection latency is a useful performance measure showing the time taken
27*387f9dfdSAndroid Build Coastguard Workerto establish a connection. This typically involves kernel TCP/IP processing
28*387f9dfdSAndroid Build Coastguard Workerand the network round trip time, and not application runtime.
29*387f9dfdSAndroid Build Coastguard Worker
30*387f9dfdSAndroid Build Coastguard Workertcpconnlat measures the time from any connection to the response packet, even
31*387f9dfdSAndroid Build Coastguard Workerif the response is a RST (port closed).
32*387f9dfdSAndroid Build Coastguard Worker
33*387f9dfdSAndroid Build Coastguard Worker
34*387f9dfdSAndroid Build Coastguard WorkerUSAGE message:
35*387f9dfdSAndroid Build Coastguard Worker
36*387f9dfdSAndroid Build Coastguard Worker# ./tcpconnlat -h
37*387f9dfdSAndroid Build Coastguard Workerusage: tcpconnlat [-h] [-t] [-p PID] [-L] [-4 | -6] [-v] [duration_ms]
38*387f9dfdSAndroid Build Coastguard Worker
39*387f9dfdSAndroid Build Coastguard WorkerTrace TCP connects and show connection latency
40*387f9dfdSAndroid Build Coastguard Worker
41*387f9dfdSAndroid Build Coastguard Workerpositional arguments:
42*387f9dfdSAndroid Build Coastguard Worker  duration_ms        minimum duration to trace (ms)
43*387f9dfdSAndroid Build Coastguard Worker
44*387f9dfdSAndroid Build Coastguard Workeroptional arguments:
45*387f9dfdSAndroid Build Coastguard Worker  -h, --help         show this help message and exit
46*387f9dfdSAndroid Build Coastguard Worker  -t, --timestamp    include timestamp on output
47*387f9dfdSAndroid Build Coastguard Worker  -p PID, --pid PID  trace this PID only
48*387f9dfdSAndroid Build Coastguard Worker  -L, --lport        include LPORT on output
49*387f9dfdSAndroid Build Coastguard Worker  -4, --ipv4         trace IPv4 family only
50*387f9dfdSAndroid Build Coastguard Worker  -6  --ipv6         trace IPv6 family only
51*387f9dfdSAndroid Build Coastguard Worker  -v, --verbose      print the BPF program for debugging purposes
52*387f9dfdSAndroid Build Coastguard Worker
53*387f9dfdSAndroid Build Coastguard Workerexamples:
54*387f9dfdSAndroid Build Coastguard Worker    ./tcpconnlat           # trace all TCP connect()s
55*387f9dfdSAndroid Build Coastguard Worker    ./tcpconnlat 1         # trace connection latency slower than 1 ms
56*387f9dfdSAndroid Build Coastguard Worker    ./tcpconnlat 0.1       # trace connection latency slower than 100 us
57*387f9dfdSAndroid Build Coastguard Worker    ./tcpconnlat -t        # include timestamps
58*387f9dfdSAndroid Build Coastguard Worker    ./tcpconnlat -p 181    # only trace PID 181
59*387f9dfdSAndroid Build Coastguard Worker    ./tcpconnlat -L        # include LPORT while printing outputs
60*387f9dfdSAndroid Build Coastguard Worker    ./tcpconnlat -4        # trace IPv4 family only
61*387f9dfdSAndroid Build Coastguard Worker    ./tcpconnlat -6        # trace IPv6 family only
62