IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [220]
    Безопасность IT [484]
    Блоки питания, Power Banks, зарядки... [490]
    Видеорегистраторы [220]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [625]
    Измерительная техника, инструменты [449]
    Накопители данных [226]
    Нетбуки, Ноутбуки, Ультрабуки [679]
    Мультиварки, блендеры и не только... [158]
    Планшеты [758]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [356]
    Сети, сетевые технологии, оборудование... [269]
    Смартфоны [4966]
    Фотокамеры, объективы, искусство фотографии.. [543]
    Умный дом [47]
    Электронные книги [96]
    CB, LPD, PMR- связь... [169]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [4380]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1113]
    Smart TV, UltraHD, приставки, проекторы... [414]
    Smart Watch [263]
    Sound: наушники, плееры, усилители... [616]
    Windows 10... [298]
    Windows 11 [28]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1339
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2014 » Август » 4 » Intel 82599: ограничиваем выходную скорость
    08:23
    Intel 82599: ограничиваем выходную скорость

    Intel 82599: ограничиваем выходную скорость

    Всем привет!

    В этой статье я хочу рассказать вам про одну полезную фичу, которая есть в сетевой карте Intel 82599.
    Речь пойдёт об аппаратном ограничении скорости выходного потока пакетов.

    К сожалению, она не доступна в линуксе «из коробки» и требуются некоторые усилия, чтобы её задействовать.
    Кому интересно — добро пожаловать под кат.





    Началось всё с того, что на днях мы тестировали оборудование, которое занимается фильтрацией трафика.



    Девайс MX — это DPI-устройство. Оно разбирает пакет, поступающий из 10G и отправляет его на гигабитный порт, если он попадает под заданный критерий (адреса, порты и прочее). На стороне PC — карта Intel 82599 с драйвером ixgbe. Трафик генерировали при помощи tcpreplay, а собирали при помощи tcpdump. Дамп с тестовым трафиком у нас был (дано по условиям задачи).

    Поскольку в общем случае отфильтровать 10G и отослать результат в 1G не представляется возможным (скорости-то разные, а буферы не резиновые), нам пришлось ограничивать скорость генерации пакетов. Тут важно сказать, что мы проводили не нагрузочное тестирование, а функциональное, поэтому нагрузка на 10G была не очень важна и влияла только на длительность теста.

    Казалось бы, задача решается просто: открываем man tcpreplay и видим там ключик -M.
    Запускаем:
     

    $ sudo tcpreplay -M10 -i eth3 dump.cap
    



    В результате в статистике MX'а появляется следующее:

    | Name | Packets | Bytes | Overflow pkt |
    | EX1 to EG1| 626395| 401276853| 53|
    | EX1 to EG2| 0| 0| 0|
    | EX1 RX| 19426782| 4030345892| 0|
    



    Столбец overflow pkt означает, что часть пакетов не «влезла» в 1G, т.к. выходной буфер переполнился. А это значит, что до PC не дошло 53 пакета. А они нам очень нужны, ведь мы проверяем правильность функционирования фильтров.

    Получается, что сетевая карта 82599 создаёт burst'ы независимо от того, какая скорость выставлена в tcpreplay.

    Встал вопрос о том, как можно контролировать нагрузку в 10G на уровне, максимально приближенном к линку. И тут нам в голову пришла мысль, что карта это уже умеет. Так и есть! В datasheet'e нашли подтверждение в разделе 1.4.2 Transmit Rate Limiting. Осталось только научиться этой функцией управлять.

    Рычагов для этого (нужных файликов в sysfs) в нашем ядре мы не нашли (мы игрались c 3.2, debian). Порылись в сорцах свежего ядра (3.14) и там тоже не нашли.

    Оказалось, что на github'е уже есть проект, который называется tx-rate-limits.

    Дальше всё тривиально :) Собрали ядро, поставили на систему:

    $ git checkout https://github.com/jrfastab/tx-rate-limits.git
    $ cd tx-rate-limits
    $ fakeroot make-kpkg --initrd -j 8 kernel-image
    $ sudo dpkg -i ../linux-image-3.6.0-rc2+_3.6.0-rc2+-10.00.Custom_amd64.deb
    



    Перезагрузились, и… в sysfs теперь есть файлики для управления нагрузкой передачи!

    $ ls /sys/class/net/eth5/queues/tx-0/
    byte_queue_limits tx_rate_limit tx_timeout xps_cpus
    



    Дальше записываем в tx_rate_limit требуемое значение в мегабитах:
     

    # RATE=100
    # for n in `seq 0 7`; do echo $RATE > /sys/class/net/eth4/queues/tx-$n/tx_rate_limit ; done
    



    В итоге в статистике MX'а видим, что overflow не происходит, т.к. скорость контролируется картой и burst'ов больше нет, весь отфильтрованный трафик попадает в 1G без потерь:
     

    | Name | Packets | Bytes | Overflow pkt |
    | EX1 to EG1| 22922532| 14682812077| 0|
    | EX1 to EG2| 0| 0| 0|
    | EX1 RX| 713312575| 147948837844| 0|
    



    Возможно, для решения данной задачи есть более простой способ.

    Буду очень благодарен, если кто-нибудь поделится.

    UPD:
    Забыл написать, как работает Transmit Rate Limiting.

    Он модифицирует IPG (Inner Packet Gap). То есть на канальном уровне контролирует задержки между пакетами.
    Таким образом, мы имеем аппаратный контроль за интервалом времени между пакетами и равномерный поток пакетов.
    И главное — есть аппаратная гарантия отсутствия burst'ов :)

    http://habrahabr.ru/post/231805/

    Категория: Linux и не только | Просмотров: 597 | Добавил: laptop | Рейтинг: 5.0/1
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    «  Август 2014  »
    ПнВтСрЧтПтСбВс
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024