Проведена оценка способности сетевого стека 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

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

Веб-пользователей оставят без «клубнички»

Разработан сервис, позволяющий автоматически отфильтровывать фотографии сомнительного характера. дальше »

Интернет развивается по закону Мура

Исследователи прогнозируют, что «размер» Всемирной сети будет удваиваться каждые 5,32 года. дальше »

От Google добиваются функции отключения сбора персональных данных

Некоммерческая организация Consumer Watchdog обратилась к компании Google с просьбой создать для пользователей возможность отказаться от регистрации на серверах Google персональных данных. дальше »

В домене .EU 3 миллиона зарегистрированных имен

Первая неделя нового года ознаменовалась важным событием для доменной зоны Европейского Союза EU. дальше »

Отчет о спаме в декабре

«Лаборатория Касперского» опубликовала очередной отчет по спам-активности в Рунете за декабрь 2008 года. дальше »

YouTube заставит пиратские ролики замолчать

YouTube предпринял первые серьезные шаги на почве борьбы с нелегальным контентом на сайте. дальше »

Россия хочет отнять у ICANN монополию на Интернет

Россия намерена бороться с монополизацией Интернета в рамках ICANN. дальше »

Казахских чиновников обязали вести блоги

Премьер-министр Казахстана К. Масимов поручил руководителям всех министерств и ведомств открыть персональные блоги. дальше »

Захват доменов в Израиле

В дни российских новогодних каникул хакеры провели так называемый «захват доменов» двух важных израильских сайтов — интернет-сайта банка «Дисконт» и Ynet. дальше »

Вирусы атакуют компьютеры

По данным исследований рынка, все больше компьютеров заражаются вирусами. Вирусы эволюционируют, становятся мобильнее и уже могут попасть в компьютер не только через Интернет, а даже через информационные носители. дальше »