Перейти к содержимому
Калькуляторы

PPPoE сервер на 82599 под линукс Кто-то делал?

Странно в документации про то что соединения должны быть локальными ничего не говорится. Зато красиво рассказывается, как там анализируются хедеры, как в RSS.

 

На каком ядре вы проводили тесты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Странно в документации про то что соединения должны быть локальными ничего не говорится. Зато красиво рассказывается, как там анализируются хедеры, как в RSS.

Как это не написано?

 

https://www.kernel.org/doc/Documentation/networking/scaling.txt

 

While RPS steers packets solely based on hash, and thus generally provides good load distribution, it does not take into account application locality. This is accomplished by Receive Flow Steering (RFS). The goal of RFS is to increase datacache hitrate by steering kernel processing of packets to the CPU where the application thread consuming the packet is running.

Ну и если в код ядра поглядеть - RFS по сути начинается уже в UDP/TCP/whatever частях стека, которые при роутинге не затрагиваются.

 

Тестировал - на специфичном центосовском 2.6.32 с бэкпортом существенных патчей в т.ч. на тему RPS/RFS/XPS/... из мейнстрима до октября 2013 включительно.

Сейчас у меня бета-ядро уже с бэкпортом до марта 2014, однако на оном тесты еще не гонял. Что-то подсказывает, что раз за январь-октябрь 2013 ничего в этом вопросе не изменилось - то не изменится и сейчас.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А почему не написать об этом фиче/баге в Intel? Прочитал всю тему крайне внимательно, но ни единого упоминания обращения к производителю не нашел. Вдруг там три строки фикса :) У нас так с бродкомом было, когда Q in Q не работал на tg драйвере.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я писал в мейлисты и чуваки мне отвечали с мылами @intel.com. Писали всякий бред про VMDq и другой неюзабельный, для текущей задачи, хлам. Потом пришел Эмиль Тантилов ( тоже @intel.com ) и отписался в конце-концов про RPS, после чего я написал, что не плохо бы в доке заапдейтить. После чего молчание.

 

Вот тред кому интересно: http://sourceforge.net/p/e1000/mailman/e1000-devel/thread/27454542.6692.1400481996366.JavaMail.javamailuser%40localhost/#msg32353886

 

На самом деле у Интела нормальные доки и комьюнити, пусть и ответили позже чем здесь, так что я думаю, что апдейт будет в следующих ревизиях доки.

 

А фикса в пару строк не будет, потому что выпиливать SRC IP, DST IP из туннелированного пакета - это накладно. Тут надо хешировать по маку, а у них юзается MSFT RSS, которая не умеет хешировать маки.

 

И я не понимаю зачем было делать чтобы тунеллированные пакеты, скармливались RSS, если очевидно, что в тунеле смещения у SRC IP и DST IP будут другими для любой инкапсуляции. То есть по факту нерабочая логика в доке и в железке.

 

В итоге при юзании RPS будет вымываться кеш процессора, т.к. пакеты из одного потока будут попадать на разные процессоры. Думаю оверхед такого решения будет значительным. Пока оценить не могу, т.к. проводил только синтетические тесты, а на них не видно.

Изменено пользователем Dark_Angel

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Апну, пожалуй, тему.

Кто подскажет как сейчас обстоят дела с PPPoE на 82576?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кто подскажет как сейчас обстоят дела с PPPoE на 82576?

 

примерно так - одно ядро нормального CPU прожёвывает один порт GE с типовым bytes_per_packet=900-1000, поэтому раскидывания прерываний одного порта по разным cpu не требуется

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А что скажите про карту Intel x710-da4? Если по ней информация, может там добавят балансировку для L2 в случае PPPoE?

 

datasheet на чипсет http://www.intel.com/content/www/us/en/embedded/products/networking/xl710-10-40-controller-datasheet.html

Изменено пользователем roysbike

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кто подскажет как сейчас обстоят дела с PPPoE на 82576?

 

Страница 287 DS описывает как подсчитывается хеш для пакетов IPv4. Если коротко, то там тот же MSFT RSS. То есть туннелированные пакеты всегда попадают в одну очередь.

 

А что скажите про карту Intel x710-da4? Если по ней информация, может там добавят балансировку для L2 в случае PPPoE?

 

datasheet на чипсет http://www.intel.com...-datasheet.html

 

Страница 670. Та же шляпа - MSFT RSS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кто подскажет как сейчас обстоят дела с PPPoE на 82576?

 

Страница 287 DS описывает как подсчитывается хеш для пакетов IPv4. Если коротко, то там тот же MSFT RSS. То есть туннелированные пакеты всегда попадают в одну очередь.

 

А что скажите про карту Intel x710-da4? Если по ней информация, может там добавят балансировку для L2 в случае PPPoE?

 

datasheet на чипсет http://www.intel.com...-datasheet.html

 

Страница 670. Та же шляпа - MSFT RSS.

 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А может кто подскажет по опыту - есть ли какие-то тонкости в тюнинге системы, имеющей большое кол-во ppp-интерфейсов?

кроме самого увеличения интерфейсов вырастают косвенные затраты - например, время выполнения программ типа ip, tc, которые при большом количестве интерфейсов "мешают" друг другу блокировками.

сейчас имеем около 3500 pppoe-сессий на одном Xeon E5-2620.

при этом в сторону пользователей идет около 220 kpps, поток - менее 2,5 Гб/с

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для ip и tc вообще пофигу количество интерфейсов, если вы конечно не пытаетесь получить их полный список. Там были проблемы с ядрами 2.6.х и немного 3.х и когда интерфейсов было больше 500, начинался какой-то ад дедлоков. После 3.11 всё разрулили и система чувствовала себя ок на синтетике с 10К сессий.

 

Я правда не звал tc, но ip и ifconfig работали очень быстро.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

начинался какой-то ад дедлоков

как это выглядит? в логах что-то пишется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

А ну и листинг интерфейсов через тот же ifconfig идет, секунд 10-15, например.

Изменено пользователем Dark_Angel

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А в случае qinq vlan-per-user , будет балансировка (RSS) или он из-за 2-го тегированиея не увидит ip?

Изменено пользователем roysbike

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для ip и tc вообще пофигу количество интерфейсов, если вы конечно не пытаетесь получить их полный список. Там были проблемы с ядрами 2.6.х и немного 3.х и когда интерфейсов было больше 500, начинался какой-то ад дедлоков. После 3.11 всё разрулили и система чувствовала себя ок на синтетике с 10К сессий.

 

Я правда не звал tc, но ip и ifconfig работали очень быстро.

Не пофигу совершенно. tc точно при каждом запуске дергает netlink и тянет список ifid - ifname, чтобы делать соответствия. Если интерфейсов много - эта операция похоже или с блокировками, или просто тормозит все подряд (в т.ч. часть функций в ядре). На 5к это уже ОЧЕНЬ тормозило, и я запускал отдельно tc, и делал патч, для передачи ifid напрямую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А в случае qinq vlan-per-user , будет балансировка (RSS) или он из-за 2-го тегированиея не увидит ip?

Балансирует.

Хрен знает, как - наверное, не смотрит тупо на смещение, а находит IP хедер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.