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

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

Air France пустила сотовую связь на борт самолёта

После долгих разговоров и противоречивых реакций, компания Air France совместно с OnAir запустили услугу сотовой связи на борту самолётов. дальше »

Проведен первый в мире тест сетей 4G в городских условиях

Финская Nokia сегодня сообщила о первом в мире успешном испытании мобильной технологии 4G в реальных городских условиях. дальше »

В Рунете появился инкубатор идей

Фонд Russian Media Ventures, принадлежащий акционерам «Видео Интернешнл» и инвестору Питеру Герви, создал инкубатор интернет-проектов Inventures. дальше »

Теперь студенты под защитой

К борьбе Американской ассоциацией звукозаписывающих компании (RIAA) со студентами университета штата Мэна подключились начинающие адвокаты. дальше »

Клиентов крупных банков четырех стран атаковал новый Троян

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

В Интернете работают более 155 миллионов сайтов

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

Елизавета II открыла свой канал на YouTube

На сайте можно увидеть новые и архивные видеоматериалы о монархии. дальше »

Домены как инструмент политической борьбы

Штаб Хиллари Клинтон, кандидата в президенты США от демократической партии, в начале декабря зарегистрировал доменные имена VotingPresent.com и VotingPresent.org. дальше »

«Белтелеком» запустит в опытную эксплуатацию услугу IP-TV

РУП «Белтелеком» в первом квартале 2008 года планирует запустить в опытную эксплуатацию услугу IP-телевидения. дальше »

В ожидании Wikia Search

Википедия начала тестирование собственного поисковика Wikia Search. дальше »