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

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

Эстонии поддержит проект Совета Европы по борьбе с киберпреступностью

Эстония вложит 780 000 крон в борьбу с киберпреступностью. дальше »

Возможна ли фильтрация интернет-трафика?

Крупнейший американский интернет-провайдер AT&T может ввести систему фильтрации трафика. дальше »

eBay меняет правила работы онлайнового аукциона

Компания eBay внесла ряд существенных изменений в схему работы своего онлайнового аукциона. дальше »

Обзор вирусной активности, январь 2008

Второй месяц подряд главными возмутителями спокойствия в почтовом трафике становятся представители нового семейства троянцев-загрузчиков Diehard дальше »

Во Франции продолжат бороться с музыкальным пиратством

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

Интерес вокруг доменов с именем основного кандидата в президенты России возрос

Самым популярным доменом с именем Дмитрия Медведева мог бы стать medvedev.ru дальше »

Кошки-фотоблоггеры захватывают Интернет

Интернет разродился новым UGC-проектом – Katz23.de, который в считанные дни привлек тысячи посетителей из всех стран мира. дальше »

Хакеры начали войну против саентологов

Команда хакеров, назвавших себя Anonymous, начала войну против Церкви саентологии. дальше »

Слухи слегка преувеличены

Крупнейшие музыкальные компании мира, включая Warner Music Group Corp и Sony BMG, отрицают то, что они согласились лицензировать песни для сервиса бесплатных загрузок. дальше »

Maestro проигрывает битву за домен в зоне co.uk

Maestro – проиграло разбирательство с британским интернет-администратором по поводу правообладания доменом maestro.co.uk. дальше »