gethostlatency - Show latency for getaddrinfo/gethostbyname[2] calls. Uses Linux eBPF/bcc.
Contents
Description
This traces and prints when getaddrinfo(), gethostbyname(), and gethostbyname2() are called, system wide,
and shows the responsible PID and command name, latency of the call (duration) in milliseconds, and the
host string.
This tool can be useful for identifying DNS latency, by identifying which remote host name lookups were
slow, and by how much.
This makes use of a Linux 4.4 feature (bpf_perf_event_output()); for kernels older than 4.4, see the
version under tools/old, which uses an older mechanism
This tool currently uses dynamic tracing of user-level functions and registers, and may need
modifications to match your software and processor architecture.
Since this uses BPF, only the root user can use this tool.
Examples
Trace host lookups (getaddrinfo/gethostbyname[2]) system wide:
# gethostlatencyFields
TIME Time of the command (HH:MM:SS).
PID Process ID of the client performing the call.
COMM Process (command) name of the client performing the call.
HOST Host name string: the target of the lookup.
Name
gethostlatency - Show latency for getaddrinfo/gethostbyname[2] calls. Uses Linux eBPF/bcc.
Options
-p PID Trace this process ID only.
Os
Linux
Overhead
The rate of lookups should be relatively low, so the overhead is not expected to be a problem.
Requirements
CONFIG_BPF and bcc.
See Also
tcpdump(8) USER COMMANDS 2016-01-28 gethostlatency(8)
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.
Stability
Unstable - in development.
Synopsis
gethostlatency
