Разница между txqueuelen и ethtool tx

12

В чем разница между txqueuelenнастройками, которые можно применить с помощью:

ifconfig eth4 txqueuelen 5000
ip link set eth4 txqueuelen 5000

И txнастройка размера кольца, которая может быть применена с:

ethtool -G eth4 tx 4096

Как они связаны с глобальными /proc/sys/net/core/wmem*настройками?

Я на RHEL6.

Кристофер Нейлан
источник

Ответы:

6

Параметры net.core.wmem_defaultи wmem_maxуправляют начальным и максимальным размерами буферов сокетов TX в байтах. В то время как сама очередь представляет собой просто связанный список skbуказателей, ядро ​​также отслеживает общий размер байтов, потребляемых символами, по skbмере их добавления и удаления из буфера сокетов. wmem_defaultSysctl устанавливает по умолчанию первоначального потолка для новых гнезд ( 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 для установки количества записей звонка для кольцевого буфера на самой сетевой плате.

Кристофер Нейлан
источник
2

Я знаю, что должен дать длинное объяснение, но Деймон уже имеет . Короче txqueuelenразмер буфера. Все сетевые пакеты помещаются в этот буфер, тогда как txэто размер пакета IP-пакета, который идет в указанном буфере. Это если я правильно понимаю этот пост.

eyoung100
источник