Назад | Перейти на главную страницу

Значение rx_queue в / proc / net / udp увеличивается до удвоенного значения SO_RCVBUF

При использовании SO_RCVBUF из 10485760 (что также является текущим пределом, предусмотренным sysctlс net.core.rmem_max настройка и отправка пакетов UDP быстрее, чем может обработать принимающая сторона, rx_queue столбец в /proc/net/udp всегда вырастает почти вдвое больше, чем SO_RCVBUF. 20972544 было самым высоким значением, которое я мог наблюдать.

Так SO_RCVBUF не соблюдается? Или вывод / proc / net / udp неверен?

Моя система:

uname -a
Linux mybox 4.3.0-1-amd64 #1 SMP Debian 4.3.3-5 (2016-01-04) x86_64 GNU/Linux

Из розетка (7) страница руководства:

   SO_RCVBUF
          Sets or gets the maximum socket receive buffer in bytes.  The
          kernel doubles this value (to allow space for bookkeeping
          overhead) when it is set using setsockopt(2), and this doubled
          value is returned by getsockopt(2).  The default value is set
          by the /proc/sys/net/core/rmem_default file, and the maximum
          allowed value is set by the /proc/sys/net/core/rmem_max file.
          The minimum (doubled) value for this option is 256.

Обратите внимание, что на странице руководства указано, что ядро ​​удвоит указанное значение буфера для накладных расходов.