Настройка сетевых буферов для UDP
Правильная настройка буферов предотвращает потерю данных при отправке или приёме UDP-потоков.
Настройка размеров буферов
Заголовок раздела «Настройка размеров буферов»Добавьте следующие параметры в файл /etc/sysctl.conf.
Для 1G Ethernet-адаптеров:
net.core.rmem_max = 16777216net.core.wmem_max = 16777216net.ipv4.udp_mem = 8388608 12582912 16777216net.ipv4.tcp_rmem = 4096 87380 8388608net.ipv4.tcp_wmem = 4096 65536 8388608net.core.wmem_default = 16777216net.core.rmem_default = 16777216net.ipv4.tcp_tw_reuse = 1Для 10G Ethernet-адаптеров:
net.core.rmem_max = 67108864net.core.wmem_max = 67108864net.ipv4.udp_mem = 8388608 16777216 33554432net.ipv4.tcp_rmem = 4096 87380 33554432net.ipv4.tcp_wmem = 4096 65536 33554432net.core.wmem_default = 33554432net.core.rmem_default = 33554432net.core.default_qdisc=fqnet.ipv4.tcp_congestion_control=bbrnet.ipv4.tcp_tw_reuse = 1Для 40G Ethernet-адаптеров:
net.core.rmem_max = 134217728net.core.wmem_max = 134217728net.ipv4.udp_mem = 8388608 33554432 67108864net.ipv4.tcp_rmem = 4096 87380 67108864net.ipv4.tcp_wmem = 4096 65536 67108864net.core.wmem_default = 67108864net.core.rmem_default = 67108864net.core.default_qdisc=fqnet.ipv4.tcp_congestion_control=bbrnet.ipv4.tcp_tw_reuse = 1Чтобы применить настройки без перезагрузки, выполните:
sysctl -pПроверьте текущие значения буферов:
sysctl \ net.core.rmem_default \ net.core.rmem_max \ net.core.wmem_default \ net.core.wmem_max \ net.ipv4.udp_mem \ net.ipv4.tcp_wmemБуферы сетевой карты
Заголовок раздела «Буферы сетевой карты»На серверах с высокой нагрузкой настройте буфер сетевой карты, чтобы избежать потери пакетов.
Проверьте текущие параметры буфера:
ethtool -g eth1Пример вывода:
Ring parameters for eth1:Pre-set maximums:RX: 4096RX Mini: 0RX Jumbo: 0TX: 4096Current hardware settings:RX: 4096RX Mini: 0RX Jumbo: 0TX: 256Оптимальный размер буфера зависит от вашего оборудования. Для многоядерных процессоров с высокой частотой (более 3 ГГц) часто лучше всего подходят максимальные значения. Для других систем хорошей отправной точкой будет среднее значение.
Чтобы увеличить размер буфера:
ethtool -G eth1 rx 2048Связанные статьи
Заголовок раздела «Связанные статьи»- System Tune — скрипт для оптимизации настроек Linux для стриминга