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

Количество буферов TX и RX в Windows Server 2008 R2

Я заметил, что сетевые карты Broadcom и Intel позволяют настраивать количество буферов передачи и приема (большее количество буферов приведет к большему использованию памяти).

Как работают эти буферы:

Буферы RX и TX обычно приравниваются к одному кадру Ethernet. Если вы настроили количество буферов RX на 512, тогда драйвер выделит достаточно буферов для обработки 512 кадров Ethernet. Объем памяти будет немного отличаться, так как разные сетевые адаптеры используют разные структуры данных дескриптора буфера, но в целом вам следует умножить размер буфера на MTU, чтобы оценить объем необходимой памяти.

Дэйв

Что ж, есть несколько советов по буферам сетевых карт, которые указывают, что чем больше, тем лучше:

http://book.opensourceproject.org.cn/sysadmin/apache/apachetomcat/opensource/090.html

Установите максимальные значения буферов приема на сетевой карте на веб-сервере. Это уменьшает количество отброшенных пакетов и уменьшает повторные передачи TCP. Вы можете установить этот параметр, перейдя в Пуск | Настройки | Панель управления | Сеть и удаленное соединение. Выберите активное подключение к локальной сети, обычно называемое подключением по локальной сети. Щелкните правой кнопкой мыши, чтобы выбрать Свойства. Нажмите кнопку «Настроить» рядом с картой сетевого интерфейса. Установите для буферов приема максимальное значение 1024.

...

Вам может быть интересно узнать о компромиссах при выполнении вышеизложенного. Компромисс заключается в том, что операционной системе потребуется выделить больше памяти для приемных буферов сетевых адаптеров и пользовательских портов.

Если у вас есть код доступа, есть также опция SO_RCVBUF, которая полезна, особенно в Windows.

Кстати, кто-нибудь знает, как соотносятся буферы RX от сетевой карты с параметром SO_RCVBUF? (WskControlSocket / getsockopt)