|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (59)
просмотр истории страницы... |
На постоянное использование можно добавлять команды в хук start.sh в функцию client_post_start_hook(). |
h1. net_rx_top |
h1. Network Top |
В комплекте с редуктором поставляется утилита {code} |
/usr/local/Reductor/bin/net_rx_top.sh |
chroot /app/reductor network-top |
{code} |
Запускается без аргументов, показывает прирост прерываний на одно ядро процессора в секунду. Рекомендуемое число: меньше 20000 на ядро. |
Запускается без аргументов, показывает полную картину нагрузки на сетевые карты и ядра процессора в реальном времени. Аномально высокие значения подсвечиваются желтым (больше нормы) или красным (критично) цветом. |
|
|
h1. Размер буфера сетевой карты |
... |
{code} |
Здесь мы видим выкрученный на максимум rx-буфер. Обычно подобрать значение довольно сложновато, ибо тут такая ситуация - либо задержки (плохо для скорости реакции на пакет), либо потери (плохо, что нужный ip-пакет вообще не попадёт на анализ). Самое оптимальное - некоторое "среднее" значение. При высокочастотном и многоядерном процессоре (>3ГГц) можно ближе к максимуму/максимальный буфер. Пример команды для увеличения буфера: |
Здесь мы видим увеличенный до максимума rx-буфер. |
|
{code} ethtool -G eth1 rx 2048 {code} |
В Carbon Reductor DPI X при добавлении сетевой карты для фильтрации через мастер для неё автоматически настраивается оптимальный размер RX-буфера. |
|
CentOS позволяет указывать параметры ethtool в качестве опции в настройках интерфейса (/etc/sysconfig/network-scripts/ifcfg-eth1), например строчкой {code} ETHTOOL_OPTS="-G ${DEVICE} rx 2048" {code} |
Также он настраивается автоматически при использовании опции FWBOOST. |
|
К сожалению он не позволяет указывать несколько команд одновременно, но можно добавить их в хук. |
h1. Распределение прерываний |
... |
h1. Мощность ядер процессора |
{code} grep '' /sys/devices/system/cpu/cpu0/cpufreq/scaling_{min,cur,max}_freq /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq:1600000 /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq:1600000 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq:3201000 {code} |
В Carbon Reductor DPI X процессор автоматически настраивается на максимально доступную базовую частоту. |
|
Суть видна - довольно мощный процессор работает в полсилы и даже не собирается напрягаться. |
|
Заставить их напрячься можно так: |
|
{code} #!/bin/bash |
h1. Настройки rx-usecs |
|
cpucount=$(grep -c 'model name' /proc/cpuinfo) sysdir=/sys/devices/system/cpu for cpu in $(eval echo cpu{0..$((cpucount-1))}); do cat $sysdir/$cpu/cpufreq/scaling_max_freq > $sysdir/$cpu/cpufreq/scaling_min_freq done {code} |
В Carbon Reductor DPI X автоматически подбирается оптимальное значение этого параметра для сетевой карты при использовании опций FWBOOST. |
|
h1. Различные значения rx-usecs |
|
Статья для лучшего понимания, правда больше под маршрутизаторы : [http://habrahabr.ru/post/108240/] |
|
В кратце - можно за счёт повышения нагрузки на процессор слегка снять нагрузку с сетёвки уменьшая rx-usecs. На большинстве машин использумых в нашем случае оптимальным оказалось значение 1. |
|
{code} ethtool -C eth1 rx-usecs 1 {code} |
h1. Замена сетевых карт |
Иногда бывает дело просто в железе. Если уверены, что сетевая карта хорошей модели и есть ещё одна такая же - попробуйте использовать её. Возможно она просто бракованная, хоть вероятность и мала. |
Иногда бывает дело в используемом оборудовании. Если Вы уверены, что сетевая карта хорошей модели и есть ещё одна такая же - попробуйте использовать её. Возможно она просто бракованная. |
|
Иногда дело бывает в драйвере (в случае dlink / realtek сетевых карт). Они, конечно, здорово поддерживаются практически любым дистрибутивом, но для высоких нагрузок не очень подходят. |
Иногда дело бывает в драйвере (в случае dlink / realtek сетевых карт). Они не подходят для высоких нагрузок. |
h1. Отключение гипертрединга |
... |
|
h1. Включение RPS (актуально для realtek/dlink/бюджетных intel) |
h1. Включение RPS |
|
Примечание - включать надо для всех vlan на сетевой карте отдельно. Включение только для самого девайса ethX не снизит нагрузку, создаваемую обработкой пакетов с vlan-интерфейсов. |
В Carbon Reductor DPI X эта технология автоматически настраивается для сетевых карт с одной очередью. |
|
При использовании опции FWBOOST эта технология автоматически настраивается в сочетании с RSS. |
|
Мы в скором времени постараемся сделать автоматическую настройку при необходимости. |
|
Пока можно включить руками или добавив в хук команду в духе: |
|
{code} cpucount="$(grep -c 'model name' /proc/cpuinfo)" printf "%x\n" $((2**cpucount-1)) > /sys/class/net/eth1/queues/rx-0/rps_cpus {code} |
h1. Актуализация настроек зеркала трафика |
Разнесение всех интерфейсов зеркала трафика по отдельным бриджам даёт небольшое снижение нагрузки за счёт устранения небольшой петли. |
Разнесение всех интерфейсов зеркала трафика по отдельным бриджам даёт снижение нагрузки. |
h1. Использование нескольких сетевых карт для приёма зеркала |
Вы можете раскидать распределить зеркало между несколькими сетевыми картами, указав в настройках создаваемых сессий зеркалирования равные диапазоны абонентских физических портов. |
|
h1. Отключение логирования |
|
menu > настройки алгоритма фильтрации > логировать срабатывания отключите эту опцию, это _немного_ ускорит процесс обработки пакета и отправки редиректа. Однако несмотря на "немного", при очень частых срабатываниях - способно даже немного снизить нагрузку на процессор. |
h1. MTU |
MTU на порту железки, отправляющей коммутатора, отправляющего зеркало не должно быть больше, чем MTU интерфейса на Carbon Reductor (в том числе и всех VLAN), принимающего зеркалированный трафик. |
|
Рекомендуем посмотреть статистику на свитче коммутаторе по распределению размеров пакетов, для D-Link например команда |
{code} |
... |
h2. Как определить потери пакетов из-за низкого MTU? |
Смотрите Посмотрите на RX: length значение. |
{code} |
... |
3: eth1: <BROADCAST,MULTICAST,NOARP,UP,LOWER_UP> mtu 1528 qdisc mq state UP qlen 1000 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff |
RX: bytes packets errors dropped overrun mcast |
5956390755888 19345313821 3533855 0 0 817154 |
RX errors: length crc frame fifo missed |
3533855 0 0 0 0 |
TX: bytes packets errors dropped carrier collsns |
23100 330 0 0 0 0 |
TX errors: aborted fifo window heartbeat |
0 0 0 0 |
{code} |
# Как избавиться от этих потерь? |
|
Разово: |
|
Разово: |
{code} ip link set eth1 mtu 1540 {code} |
На постоянку: |
На постоянной основе: |
|
Дописать в конфиг сетёвки (/etc/sysconfig/network-scripts/ifcfg-eth1): |
Дописать в конфиг сетевой карты (например /etc/sysconfig/network-scripts/ifcfg-eth1): |
{code} |
... |