Jump to content
Local
Sashok1985

Распределение прерываний сетевой карты

Recommended Posts

Да, так. Это битмаска и для аффинити абсолютно не имеет смысла одинаковая маска и тем более ff, она дефолтовая ff, т.е. раскидывать на любое попавшееся ядро. Читайте официальную документацию:

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

Share this post


Link to post
Share on other sites
В 19.03.2018 в 16:22, Sashok1985 сказал:

Какой тогда смысл от такого разброса?

а в чем собссно проблема-то?

 

и какой смысл для очереди, в которую идут ВСЕ прерывания, указывать worker'ом только одно ядро???

 

 

В 19.03.2018 в 17:12, ttttt сказал:

для аффинити абсолютно не имеет смысла одинаковая маска

это ни разу не аффинити. это - RPS.

Share this post


Link to post
Share on other sites
28 минут назад, NiTr0 сказал:

это - RPS

Именно.

Это не аппаратная обработка прерывания, это уже уровень soft irq. Накладных расходов на использование чужих ядер минимум, конструкция вида "все ядра всем потокам" работает хорошо, выравнивая кривую аппаратную балансировку.

Share this post


Link to post
Share on other sites

Не именно, распределение по ядрам традиционно называется аффинити, не важно чего конкретно, IRQ, обработки соединений, чего-то другого.
И называется так именно потому, что разделяя вещи связанные друг с другом по одним и тем же ядрам можно более эффективно использовать кэш каждого ядра, а не ждать пока данные прилетят откуда попало и не засорять ненужным кэшем не то ядро.

https://en.wikipedia.org/wiki/Affinity_mask
https://en.wikipedia.org/wiki/Processor_affinity

Edited by ttttt

Share this post


Link to post
Share on other sites
18 часов назад, ttttt сказал:

разделяя вещи связанные друг с другом по одним и тем же ядрам можно более эффективно использовать кэш каждого ядра, а не ждать пока данные прилетят откуда попало и не засорять ненужным кэшем не то ядро.

 

ну т.е. вы хотите сказать, что включение RPS в случае одной очереди прерываний (либо PPPoE пакетов, которые падают в одну и ту же очередь, делая аппаратные очереди бесполезными) снизит производительность? при том, что в реальном мире все ровно с точностью до наоборот?

Share this post


Link to post
Share on other sites

Ок, не надо мне свои выдумки приписывать, потому уточнение, у рпс аффинити достигается выбором ядра по хэшу. Как вообще работает: при одной очереди прерывание выполняется на каком-то ядре и на этом ядре вычисляется хэш пакета и по хэшу выбирается из списка рпс ядро, куда отправлять дальнейшую обработку пакета. Соответственно оптимально в этом случае будет прибить прерывание к одному какому-то ядру, а остальные ядра указать в рпс. Если, конечно, не нума, иначе на все ядра будет медленно и нужно прибивать только к тем ядрам, куда можно быстро с ядра прерывания ходить. Когда очередей много, включен рсс и не нума, ядро где вычисляется хэш уже выбрано рсс хардом, таким же вычислением хэша и смысл отправлять пакет на дальнейшую обработку есть только самому себе. Если рсс не работает для доминирующего типа трафика, то прерывания будут попадать на одно ядро выбранное рсс, то очевидно что для оптимума стоит отключить рсс и мультиочереди и делать как и с одной очередью.

Share this post


Link to post
Share on other sites
В 21.03.2018 в 23:37, ttttt сказал:

Соответственно оптимально в этом случае будет прибить прерывание к одному какому-то ядру, а остальные ядра указать в рпс.

таки нет. получение пакета из сетевухи и вычисление хеша по заголовку - копеечная по ресурсам операция. потому выделять под это отдельное ядро смысла нет. тут вся суть - распределить ресурсоемкую маршрутизацию пакетов на более чем одно ядро.

да и не факт что cache miss будут меньше при отдельном ядре под прием пакетов.

 

В 21.03.2018 в 23:37, ttttt сказал:

Если рсс не работает для доминирующего типа трафика, то прерывания будут попадать на одно ядро выбранное рсс, то очевидно что для оптимума стоит отключить рсс и мультиочереди и делать как и с одной очередью.

зачем? чем мешают тут мультиочереди?

Share this post


Link to post
Share on other sites

Всем спасибо за консультации. RPS не был лишним, тем более, что ранее, за непониманием его работы, я назначал маску по ядрам, по типу афинити. Маска на все ядра дала не плохой общий результат по ядрам. А вот проблема с полкой оказалась совсем не в этом. Один из абонентов супер заядлый торрентщик. В пики, порождал около 3-4 тыс. запросов в секунду на своём pppoe коннекте. А так как каждый pppoe коннект может обрабатываться только одной очередью, вот он и кладёт одно ядро в полку.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By WhiteBoroda
      Intel Xeon E5-2623 V3 SR208 4-Core 3.0GHz 10MB LGA 2011 Processor  - $120
      Brand :Intel
      Manufacturer : Intel
      Item model number : SR208
      - 4C/8HT, 3 Ghz, 8 GT/s
       
      Есть 4 шт
      Все сразу - $430

       
    • By nicolae
      Продам сетевые карты:
       
      1. Intel PRO/1000 ET Dual RJ-45 82576 адаптер Tyan P1203: 850 грн.
      2. D-LINK DGE-528T: 150 грн. за 2 шт.
    • By Sergik_
      Продам сетевой адаптер Intel X520-DA2 для OCP.
      Новый.
      Подробнее о девайсе: https://www.intel.ru/content/www/ru/ru/products/network-io/ethernet/10-25-40-gigabit-adapters/x520-da2-for-open-compute-project-10gbe.html
      Цена 150$
       
    • By xadjubei
      Продам процесор Intel i7-4770T. Ціна 4000 гривень.
    • By KaYot
      Продам серверные SSD Intel SSD DC S3700 200Gb.
      Б/у, у всех уровень износа 0% согласно смарту и утилите intel SSD tool.
       
      Рейтинг износоустойчивости - 10 DWPD for 5 years - 10 полных перезаписей накопителя каждый день на протяжении 5 лет!
      Среднее время наработки на отказ - 2,000,000 Hours
       
      Наличие 5шт, 60$/шт
       


×