Параметры net.core.wmem_default
и wmem_max
управляют начальным и максимальным размерами буферов сокетов TX в байтах. В то время как сама очередь представляет собой просто связанный список skb
указателей, ядро также отслеживает общий размер байтов, потребляемых символами, по skb
мере их добавления и удаления из буфера сокетов. wmem_default
Sysctl устанавливает по умолчанию первоначального потолка для новых гнезд ( net/core/sock.c:sock_init_data()
). Приложениям разрешено увеличивать размер буферов своих сокетов, и wmem_max
это предел для этой функциональности ( net/core/sock.c:sock_setsockopt()
).
Когда пакет был удален из буфера сокета и проходит через стек сетей ядра, он помещается в очередь передачи для интерфейса, который ожидает загрузки на сам NIC. txqueuelen
Набор по ifconfig
или ip
командам количество кадров , разрешенных для ядра очереди передачи для массового обслуживания дисциплины ( net/sched/sch_generic.c:pfifo_fast_enqueue()
).
Наконец, ethtool -G
использует ioctl для установки количества записей звонка для кольцевого буфера на самой сетевой плате.
Кристофер Нейлан
источник