Просмотр Исходного

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

Установка значений производится через [ics_tune.sh|asrdocnew:Нестандартные настройки при помощи ics_tune.sh]
{code}
if [ "$1" = "rc.mount" ]; then
ethtool -s Eeth2 autoneg off
ethtool -s Eeth2 speed 100 duplex full
fi
{code}

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


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

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

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

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

Её вывод:

{code}
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
{code}
Нас интересует значение missed, если оно достаточно большое, то ситуацию можно исправить увеличением размера буфера интерфейса.

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

h5. Внимание

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


h5. {color:#333333}Также нельзя устанавливать значение размера буфера выше максимального.{color}

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

{code}
ethtool -g Имя_интерфейса
{code}

{code}
[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
{code}
Отсюда получаем максимальные значения RX и TX: 4096.

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

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

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


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

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

{code}
ethtool -G Leth1 rx 4096 tx 1024
ethtool -G Eeth2 rx 4096 tx 1024
{code}
При наличии более чем двух интерфейсов (внешних и внутренних) это действие необходимо применять и к ним.

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

Чтобы не делать это каждый раз вручную, можно добавить в&nbsp;[ics_tune.sh|http://asrdoc.ideco.ru/pages/viewpage.action?pageId=29032518]&nbsp;следующие строки:

{code}
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
{code}