Дополнительная настройка сетевых карт

Skip to end of metadata
Go to start of metadata

Установка заданной скорости и дуплекса для ethernet-интерфейса

Установка значений производится через ics_tune.sh

if [ "$1" = "rc.mount" ]; then
    ethtool -s Eeth2 autoneg off
    ethtool -s Eeth2 speed 100 duplex full
fi

Увеличение размера буфера сетевых карт

Проверка необходимости увеличения

Проверить наличие потерь пакетов на интерфейсах можно с помощью команды

ip -s -s link show Имя_интерфейса

Имя интерфейса обычно Leth1

Её вывод:

5: Leth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo qlen 1000
    link/ether 00:26:55:dc:a7:df brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    481811818  3177767996 0       0       0       6
    RX errors: length  crc     frame   fifo    missed
               0        0       0       0       8493133

Нас интересует значение missed, если оно достаточно большое, то ситуацию можно исправить увеличением размера буфера интерфейса.

Чтобы понять как часто теряется пакет нужно поделить значение packets/missed.

Внимание

Если значение missed равно нулю, то смысла увеличивать буфер сетевой карты просто нет!

Также нельзя устанавливать значение размера буфера выше максимального.

Посмотреть текущий и максимальный размеры буфера можно с помощью команды:

ethtool -g Имя_интерфейса
[root@test_host root]# ethtool -g Leth1
Ring parameters for Leth1:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX:		4024
RX Mini:	0
RX Jumbo:	0
TX:		1024

Отсюда получаем максимальные значения RX и TX: 4096.

Увеличение буфера из меню

В последних версиях билинга есть возможность увеличить буфер сетевых карт из консольного меню: Конфигурирование сервера -> Qos. Шейпер... -> Оптимизация сети -> Увеличить буфер сетевых карт

Для версий ниже 3.7.0

Команды для увеличения

На Carbon Billing это можно сделать с помощью утилиты ethtool:

ethtool -G Leth1 rx 4096 tx 1024
ethtool -G Eeth2 rx 4096 tx 1024

При наличии более чем двух интерфейсов (внешних и внутренних) это действие необходимо применять и к ним.

Автоматизация увеличения

Чтобы не делать это каждый раз вручную, можно добавить в ics_tune.sh следующие строки:

if [ "$1" = 'networkd' -a "$2" = 'start' ]; then
  for i in $( ip -o addr | awk '{print $2}' | egrep "(L|E)eth[0-9]*$" | uniq ); do
    ethtool -G $i rx 4096 tx 1024
  done
fi
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.