Проведена оценка способности сетевого стека Linux обрабатывать миллион пакетов в секунду

Опубликовано: 26 июня 2015 г., пятница

Марек Майковски (Marek Majkowski), разработчик ядра Linux, работающий в компании CloudFlare, провёл заслуживающий внимания эксперимент, пытаясь разобраться насколько быстр сетевой стек ядра Linux и возможно ли в Linux обеспечить работу пользовательского приложения, способного обработать миллион UDP–пакетов в секунду на обычном сервере с шестиядерным CPU Xeon (2GHz) и сетевой картой 10G.

В эксперименте применялась связка из программы для отправки данных, использующая вызов sendmmsg для отправки информации порциями по 1024 пакета за раз, и программы для приема данных, использующая системный вызов recvmmsg, более эффективный чем recv благодаря пакетной обработке данных.

Первый вариант приложения продемонстрировал производительность отправки данных в диапазоне от 197 до 350 тысяч пакетов в секунду. Непостоянство производительности объяснялось миграцией обработчиков между ядрами CPU. После жесткого закрепления программы за одним ядром CPU возросла эффективность кэша и производительность стабилизировалась на отметке в 350 тысяч пакетов в секунду. Следующим шагом стало распараллеливание отправки в несколько нитей, генерация пакетов значительно возросла, но принимающая программа не смогла обработать больше чем при первой попытке, уперевшись в производительность ядра CPU, выполняющего код приложения.

Данное ограничение удалось преодолеть при помощи задействования нескольких принимающих очередей (RX queue), привязанных к разным CPU и закреплённых за разными IP–адресами. Распределение запросов по двум принимающим очередям увеличил производительность до 650 тысяч пакетов в секунду. Попытка дальнейшего увеличения числа RX–очередей привела к очередному узкому месту – несмотря на то, что сетевая карта справлялась с доставкой пакетов ядру, ядро оказалось не способно доставить их приложению, которое не успевало их принимать. Увеличение числа принимающих нитей, из–за ограниченного размера буфера UDP, не улучшило положение.

Источник: opennet.ru
Копировать, распространять, публиковать информацию портала News.lt без письменного согласия редакции запрещено.

Комментарии Facebook

Новый комментарий


Captcha

статьи по схожей тематике

Количество сайтов в интернете приближается к 150 миллионам

Аналитическая компания Netcraft опубликовала ноябрьский отчет о количестве сайтов в глобальной Сети. дальше »

Уникальная покупка

Неизвестный покупатель из Италии заплатил $3,8 млн на онлайн-аукционе eBay за городок в штате Техас, в котором есть всего один дом. дальше »

Арестовали за кражу виртуальной мебели

Только в Голландии могла произойти история с подростком, который был задержан полицией за кражу виртуальной мебели. дальше »

Седеющий Интернет

Одной из примечательных черт Интернета называют появление в Сети растущего числа сайтов, рассчитанных на тех, кому за 50. дальше »

Итоги 2-го форума по вопросам управления Интернетом

ICANN, Международный союз электросвязи и ЮНЕСКО будут сотрудничать в глобальном проекте по созданию международных стандартов для построения многоязычного киберпространства. дальше »

Программа помощи НАТО

НАТО поможет странам Южного Кавказа в обеспечении сверхскоростным Интернетом. дальше »

Как защититься от соблазнов в Сети

Голландская молодежь в возрасте от 12-ти до 24-х лет желает быть более защищенной от соблазнов, которые открывает перед ними Интернет. дальше »

«Четвертый экран» от Nokia

Компании Nokia и Google стали в авангарде процесса перехода «большого» Интернета на экран телефонного аппарата. дальше »

Доменная зона .asia открыта для бизнес-пользователей

Стартовал второй период предварительной регистрации в новой доменной зоне .asia. дальше »

В Латвии создадут регистр Дедов Морозов

Латвийский портал kas-kur.lv начал работу по созданию базы данных о всех профессиональных Дедах Морозах и Санта Клаусах страны. дальше »