Section 8 · System administration

bcc-tcpconnlat.8

Package: bcc-tools

On this page

tcpconnlat

NAME
SYNOPSIS
DESCRIPTION
REQUIREMENTS
OPTIONS
EXAMPLES
FIELDS
OVERHEAD
SOURCE
OS
STABILITY
AUTHOR
SEE ALSO


NAME

tcpconnlat − Trace TCP active connection latency. Uses Linux eBPF/bcc.

SYNOPSIS

tcpconnlat [−h] [−t] [−p PID] [−L] [−4 | −6] [-v] [min_ms]

DESCRIPTION

This tool traces active TCP connections (eg, via a connect() syscall), and shows the latency (time) for the connection as measured locally: the time from SYN sent to the response packet. This is a useful performance metric that typically spans kernel TCP/IP processing and the network round trip time (not application runtime).

All connection attempts are traced, even if they ultimately fail (RST packet in response).

This tool works by use of kernel dynamic tracing of TCP/IP functions, and will need updating to match any changes to these functions. This tool should be updated in the future to use static tracepoints, once they are available.

Since this uses BPF, only the root user can use this tool.

REQUIREMENTS

CONFIG_BPF and bcc.

OPTIONS

−hPrint usage message.
−tInclude a timestamp column.
−p PIDTrace this process ID only (filtered in-kernel).
−LInclude a LPORT column.
−4Trace IPv4 family only.
−6Trace IPv6 family only.
−vPrint the resulting BPF program, for debugging purposes.
min_msMinimum duration to trace, in milliseconds.

EXAMPLES

Trace all active TCP connections, and show connection latency
(SYN->response round trip):

tcpconnlat

Include timestamps:

tcpconnlat −t

Trace PID 181 only:

tcpconnlat −p 181

Trace connects, and include LPORT:

tcpconnlat −L

Trace IPv4 family only:

tcpconnlat −4

Trace IPv6 family only:

tcpconnlat −6

Trace connects with latency longer than 10 ms:

tcpconnlat 10

Print the BPF program:

tcpconnlat −v

FIELDS

TIME(s)

Time of the response packet, in seconds.

PIDProcess ID that initiated the connection.
COMMProcess name that initiated the connection.
IPIP address family (4 or 6).
SADDRSource IP address.
DADDRDestination IP address.
LPORTSource port
DPORTDestination port

LAT(ms)

The time from when a TCP connect was issued (measured in-kernel) to when a response packet was received for this connection (can be SYN,ACK, or RST, etc). This time spans kernel to kernel latency, involving kernel TCP/IP processing and the network round trip in between. This typically does not include time spent by the application processing the new connection.

OVERHEAD

This traces the kernel tcp_v[46]_connect functions and prints output for each event. As the rate of this is generally expected to be low (< 1000/s), the overhead is also expected to be negligible. If you have an application that is calling a high rate of connects()s, such as a proxy server, then test and understand this overhead before use.

SOURCE

This is from bcc.

https://github.com/iovisor/bcc

Also look in the bcc distribution for a companion _examples.txt file containing example usage, output, and commentary for this tool.

OS

Linux

STABILITY

Unstable - in development.

AUTHOR

Brendan Gregg

SEE ALSO

tcpconnect(8), tcpaccept(8), funccount(8), tcpdump(8)