Project

General

Profile

Actions

Feature #5059

open

Congestion Detection: Monitor NIC incoming buffer queue

Added by Anonymous over 4 years ago. Updated 5 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Faces
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:

Description

I noticed in VM experiments that often NFD processing speed is the performance bottleneck, which leads to many/all of packet loss being caused by drops at a router's incoming queue.

One solution would be to monitor the incoming queue, and if it exceeds some threshold to put in a congestion mark to tell the consumers to slow down.

The relevant buffer information can be queried with the "ss" (socket status) tool, although only in the version available in Ubuntu 18.04 and later.

ss -u -m
Recv-Q     Send-Q            Local Address:Port           Peer Address:Port
0          0                      10.1.0.1:6363               10.2.0.3:6363
        skmem:(r20352,rb212992,t0,tb212992,f128,w0,o0,bl0,d2549)

The relevant information here are the 2549 socket drops.

       -m, --memory
              Show socket memory usage. The output format is:

              skmem:(r<rmem_alloc>,rb<rcv_buf>,t<wmem_alloc>,tb<snd_buf>,
                            f<fwd_alloc>,w<wmem_queued>,o<opt_mem>,
                            bl<back_log>,d<sock_drop>)

We could query this information with the netlink API, however it is quite complicated to use.

For example, the ss tool itself uses this API, and takes up over 5000 lines of code. https://github.com/shemminger/iproute2/blob/master/misc/ss.c


Related issues 1 (0 open1 closed)

Related to NFD - Feature #1624: Design and Implement Congestion ControlClosed

Actions
Actions

Also available in: Atom PDF