3 ms·
Looks like a good project -- new metrics like how much time a TCP session has been in different retransmit states should be useful for properly comprehending is
by brendangregg 11y ago
Looks like a good project -- new metrics like how much time a TCP session has been in different retransmit states should be useful for properly comprehending issues, and estimating speed up.
And it's a bunch of SystemTap scripts that trace send/receive/etc! Glad it isn't a kernel module, at least. :) So tracing send/receive does cost, which is covered in the README:
"The figure above shows Per-core CPU consumption of tcpdive is less than 10% while QPS is no significant influenced, which we believe is acceptable in most cases."
Actually, I'd say this was acceptable _because_ it is so clear in the README, and we can judge its usage beforehand. The overhead is actually pretty high, 2-10% CPU per core, but then that's what I'd expect for tracing send/receive using SystemTap. Again, by making it clear we can accept or not accept it beforehand and use accordingly.
eBPF should be making this type of tracing lower overhead...
- aduitsis 11y agoYou don't mention it, but credit where it's due: DTrace, with the creation of which you had a lot to do, can be used in quite the same way in kernels that have added the TCP provider. I think we all owe you a big thanks.
- brendangregg 11y agoThese look like a lot of new scripts, and not quite what I was doing with DTrace, although in the same spirit that DTrace pioneered: tracing of TCP internals for custom metrics. I didn't create DTrace, but I did create the DTrace TCP provider and many networking scripts. A nice list of them is here: http://dtracebook.com/index.php/Network_Lower_Level_Protocols#Scripts http://dtracebook.com/index.php/Network_Lower_Level_Protocol... . My scripts focused on tracing events, workload characterization at different levels, and some timing: connection lifespans, and 1st byte latency. (At least in that location; I've got DTrace scripts scattered elsewhere too). The tcpdive scripts have focused so far on perturbation study: congestion, retransmissions, resets. Also useful!