Почему параметры кольца сетевой карты не установлены заранее на уровне максимальных возможностей оборудования?

Почему параметры кольца сетевой карты не установлены заранее на уровне максимальных возможностей оборудования?

Проверьте кольцевой буфер сетевой карты:

# ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX:        4096
RX Mini:      0
RX Jumbo:     0
TX:        4096
Current hardware settings:
RX:         256
RX Mini:      0
RX Jumbo:     0
TX:         256

Можно установить «RX/TX» до предела, указанного в «Предустановленных максимальных значениях», например:

# ethtool -G eth0 rx 4096 rx 4096

Вопрос: по умолчанию;,почему они установлены так низко?(на каждом сервере, который у меня есть, все они на 256) вместо более высокого значения, или их максимальные возможности оборудования? Есть ли какие-либо недостатки (если да, то какие?) увеличения этих значений?

решение1

Во-первых, установленные вами цифры не соответствуютбайтыкак думают многие, они находятся вдескрипторы(а размер дескриптора зависит от оборудования). Таким образом, когда вы увеличиваете длину кольца, вы запрашиваете больше памяти, которая будет выделена в ядре для этих дескрипторов. В общем, вы хотите, чтобы эта память ядра находилась в кэше L1, чтобы обработка прерываний была максимально быстрой. Увеличение размера кольца делает это менее вероятным, а в некоторых случаях и вовсе невозможным.

Следующее, что нужно сделать, это объединить прерывания — в общем, когда вы увеличиваете размер кольцевого буфера, NIC соответствующим образом корректирует свои низкие/высокие отметки и запускает прерывание, когда буферизуется больше данных (то есть реже). Время, необходимое ядру для обработки этих больших объемов данных во время обработки прерываний, также увеличится в результате.

Все вышеперечисленное приводит к простому эффекту ведра - с большим кольцом вероятность потери пакетов уменьшается, а задержка сети увеличивается. Это может быть совершенно нормально, если вы транслируете большие файлы по TCP, и может быть совершенно нежелательным, если вы используете приложение с малыми задержками (например, игры и т. п.).

Цифры по умолчанию, которые вы видите, представляют собой разумный компромисс между этими двумя вариантами.

Связанный контент