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

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

Почта Google Gmail вышла в офлайн

Теперь работать с Gmail можно при отсутствии подключения к интернету. дальше »

Регистрируется все больше порталов с хвостиком .lt

В конце 2008 г. в мире действовало более 186,7 млн. Интернет-порталов, из них – более 95 тыс. в Литве дальше »

Ватикан открыл канал на YouTube

Ватикан открыл собственный канал на популярном веб-видеосервисе YouTube дальше »

Киберпреступники заработали $5 млрд за год

Хакерство, перестав быть уделом подростков, образовало настоящий черный рынок Интернета. дальше »

Пользователи MySpace сняли фильм

Пользователи MySpace, одной из крупнейших социальных сетей в мире, сняли фильм под названием Faintheart дальше »

Статьи Википедии смогут редактировать только избранные

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

Интернет преодолел миллиард пользователей

Показатели по странам мира распределились следующим образом – Китай занял первое место со 180 миллионами человек и 18%, на втором месте США с 16,2% долей, затем идут Япония – 6%, Германия – 3,7% и Великобритания – 3,6% мировой численности интернетчиков. дальше »

Gdrive выйдет в этом году

Сервис Google Gdrive, с помощью которого пользователи смогут перенести содержимое своего жесткого диска на сервера крупнейшего в мире поисковика, появится в 2009 году. дальше »

Винт Серф поддерживает идею русскоязычных доменов

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

Очередная «гениальная» идея классического Web 2.0

Сорри.ру — это место, где люди извиняются, прощают, знакомятся, находят взаимопонимание, советуются с психологами, и просто болтают. дальше »