Date: Wed, 7 Aug 2024 18:21:43 -0700 From: Navdeep Parhar <np@FreeBSD.org> To: Alan Somers <asomers@freebsd.org>, FreeBSD Net <freebsd-net@freebsd.org> Subject: Re: Monitoring packet loss Message-ID: <88167c63-773c-42d2-93b6-f2f028f8aebb@FreeBSD.org> In-Reply-To: <CAOtMX2hLaYEhVpoPG5HtJ7Qj030PvGOBFeo78fqmRxPMJAfxmQ@mail.gmail.com> References: <CAOtMX2hLaYEhVpoPG5HtJ7Qj030PvGOBFeo78fqmRxPMJAfxmQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 8/7/24 7:06 AM, Alan Somers wrote: > I'd like to track the rate of packet loss for outbound packets from > some production servers. Obviously, that's impossible. But I think > that the rate of TCP retransmissions should be a close proxy for > packet loss. Currently I can only observe TCP retransmissions by > using wireshark, a slow and laborious process. But it seems to me > that the network stack should already have that information The kernel already maintains a VNET-virtualized tcpstat structure for aggregate TCP stats. netstat and systat grab these using the net.inet.tcp.stats sysctl. This might work for you if you're okay with global and not per-interface information. VNET_PCPUSTAT_DECLARE(struct tcpstat, tcpstat); /* tcp statistics */ $ netstat -sp tcp | grep -iE 'retr|rexm' $ systat -tcp Regards, Navdeep > Would it > be possible to add a sysctl to expose the total number of > retransmissions since boot? This information would be very useful. > It could reveal for example problems with a model of NIC, or > congestion on one network segment but not another, or a regression in > the OS. > > -Alan >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?88167c63-773c-42d2-93b6-f2f028f8aebb>