Home | History | Annotate | Download | only in tools
      1 Demonstrations of tcpconnlat, the Linux eBPF/bcc version.
      2 
      3 
      4 This tool traces the kernel function performing active TCP connections
      5 (eg, via a connect() syscall), and shows the latency (time) for the connection
      6 as measured locally: the time from SYN sent to the response packet.
      7 For example:
      8 
      9 # ./tcpconnlat
     10 PID    COMM         IP SADDR            DADDR            DPORT LAT(ms)
     11 1201   wget         4  10.153.223.157   23.23.100.231    80    1.65
     12 1201   wget         4  10.153.223.157   23.23.100.231    443   1.60
     13 1433   curl         4  10.153.223.157   104.20.25.153    80    0.75
     14 1690   wget         4  10.153.223.157   66.220.156.68    80    1.10
     15 1690   wget         4  10.153.223.157   66.220.156.68    443   0.95
     16 1690   wget         4  10.153.223.157   66.220.156.68    443   0.99
     17 2852   curl         4  10.153.223.157   23.101.17.61     80    250.86
     18 20337  python2.7    6  1234:ab12:2040:5020:2299:0:5:0 1234:ab12:20:9f1d:2299:dde9:0:f5 7001  62.20
     19 21588  nc           6  ::1              ::1              80    0.05
     20 [...]
     21 
     22 The first line shows a connection from the "wget" process to the IPv4
     23 destination address 23.23.100.231, port 80. This took 1.65 milliseconds: the
     24 time from the SYN to the response.
     25 
     26 TCP connection latency is a useful performance measure showing the time taken
     27 to establish a connection. This typically involves kernel TCP/IP processing
     28 and the network round trip time, and not application runtime.
     29 
     30 tcpconnlat measures the time from any connection to the response packet, even
     31 if the response is a RST (port closed).
     32 
     33 
     34 USAGE message:
     35 
     36 # ./tcpconnlat -h
     37 usage: tcpconnlat [-h] [-t] [-p PID] [min_ms]
     38 
     39 Trace TCP connects and show connection latency
     40 
     41 positional arguments:
     42   min_ms             minimum duration to trace, in ms (default 0)
     43 
     44 optional arguments:
     45   -h, --help         show this help message and exit
     46   -t, --timestamp    include timestamp on output
     47   -p PID, --pid PID  trace this PID only
     48 
     49 examples:
     50     ./tcpconnlat           # trace all TCP connect()s
     51     ./tcpconnlat -t        # include timestamps
     52     ./tcpconnlat -p 181    # only trace PID 181
     53     ./tcpconnlat 1         # only show connects longer than 1 ms
     54     ./tcpconnlat 0.1       # only show connects longer than 100 us
     55     ./tcpconnlat -v        # Show the BPF program
     56