Про увеличение производительности сети в линукс.

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

Но тот же самый канал можно загрузить маленькими пакетами, но отсылать и принимать их придется существенно чаще. Здесь очень важным параметром для сетевой карты (драйвера) являются NIC Ring Buffers - число буферов для передачи и приёма.

Настройки по умолчанию можно посмотреть с помощью утилиты ethtool:

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

Здесь мы видим две секции. Верхняя - это максимальные значения, которые могут быть назначены соответствующими параметрам. Нижняя секция - это текущие настройки.

В ситуации, когда трафик создается маленькими пакетами, требуется увеличить размеры буферов rx и tx:

# ethtool -G eth0 rx 4096
# ethtool -G eth0 tx 4096

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