The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Facebook представил наработки по оптимизации IPv6 в ядре Linux

28.07.2015 20:46

Facebook представил серию патчей, решающих проблемы с масштабируемостью IPv6-стека в ядре Linux. В частности, подготовлена реализация системы заполнения кэша маршрутизации по необходимости (cache on demand), позволяющая преодолеть проблему с разрастанием дерева маршрутов IPv6, которая приводит к повышенной нагрузке на CPU и неэффективной работе сборщика мусора.

При оценке эффективности работы кэша на одном из рабочих серверов для таблиц /128 в дерево маршрутов попало 300 тысяч маршрутов, при том, что 299 тысяч были созданы впустую. Применение патча позволило кардинально сократить число элементов в дереве маршрутов, оставив там только необходимые записи. В итоге, на тестовой системе каждый запуск сборщика мусора с патчем приводит к чистке примерно 500 записей, вместо 200 тысяч элементов кэша при использовании обычной конфигурации.

Из других патчей отмечается оптимизация выполнения вызова fib6_lookup() и решение ряда проблем для маршрутов /128. Подготовленные изменения уже переданы для включения в состав основного ядра Linux. В дальнейшем оптимизацию планируется продолжить, так как по оценке Facebook из-за неэффективных методов блокировки производительность IPv6-стека примерно на 10 процентов отстаёт от стека IPv4.



  1. Главная ссылка к новости (https://code.facebook.com/post...)
  2. OpenNews: Обновление iptables 1.4.17 с поддержкой IPv6 NAT
  3. OpenNews: Представлен THC-IPV6 2.0, пакет для исследования безопасности сетей IPv6
  4. OpenNews: Сегодня проводится всемирный день внедрения IPv6
  5. OpenNews: FreeBSD Foundation профинансирует тестирование эффективности IPv6-стека FreeBSD
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/42682-linux
Ключевые слова: linux, ipv6
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (39) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, A.Stahl (ok), 20:50, 28/07/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >неэффективной работе сборщика мусора

    А расскажите кто в курсе дел, что это за сборщик мусора такой? Он внутренний для обслуживания IPv6 или это что-то общеядерное?

     
     
  • 2.2, колян (?), 21:25, 28/07/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    че, лет ми  гугл зис фор ю
    http://lxr.free-electrons.com/ident?i=fib6_run_gc
     
     
  • 3.26, burjui (ok), 14:01, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На будущее: http://lmgtfy.com/?q=fib6_run_gc
     
  • 3.27, Аноним (-), 14:45, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Короче, ты не знаешь
     

  • 1.3, Alukardd (ok), 21:54, 28/07/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > проблему с разрастанием дерева маршрутов IPv6, которая приводит к повышенной нагрузке на CPU

    Дык в ядре уже есть похожие проблемы...
    Хорошо мысль донёс amarao в одном из своих коментов на Хабре (http://habrahabr.ru/company/wargaming/blog/256647/#comment_8394907).

     
     
  • 2.5, Crazy Alex (ok), 22:01, 28/07/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Скорее всего потому, что так извращаться просто никому особо не нужно
     
  • 2.14, oops (ok), 11:45, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    любопытный эксперимент озвучил amarao.
    Я вот на FreeBSD 10.2-RC1 amd64 попробовал в виртуалке с одним ядром и 512МБ памяти то же самое в баше:

    # for a in {1..255}; do for b in {1..255}; do time ifconfig hn0 add 172.16.$b.$a/32; done; done

    До 172.16.255.255 машина дошла чуть больше, чем за час (на 2 минуты).

    Последние адреса добавлялись максимум за 0.3 секунды.

    # ifconfig hn0 | grep inet | wc -l
       65025
    # time ifconfig hn0
    real 0m0.641s
    user 0m0.228s
    sys  0m0.411s

    Никаких проблем. Система себя чувствует отлично!

    Вот вам и боясдэ!

     
     
  • 3.15, Crazy Alex (ok), 12:07, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Да пофигу. Она боясдэ - это достаточно, чтобы желать ей побыстрее сдохнуть.

    Ну и да, если оно в линуксе до сих пор так и лаже бага в багтрекере не видно - значит, такие извраты вообще никому не нужны.

     
     
  • 4.16, oops (ok), 12:10, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Да пофигу. Она боясдэ - это достаточно, чтобы желать ей побыстрее сдохнуть.
    > Ну и да, если оно в линуксе до сих пор так и
    > лаже бага в багтрекере не видно - значит, такие извраты вообще
    > никому не нужны.

    как это никому не нужны? А тысячи контейнеров в хостингах и у гуглов?

     
     
  • 5.19, Crazy Alex (ok), 12:43, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Вот так. Вы видели где-то в интернете жалобы на это, связанные с реальными ситуациями, а не синтетику от амарао?

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

     
     
  • 6.21, Andrew Kolchoogin (ok), 12:51, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вы видели где-то в интернете жалобы

    Да-да. Этого не было на дваче. :)

     
     
  • 7.23, Crazy Alex (ok), 13:25, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если проблема распространена - о ней говорят. А если молчат - значит,либо е вообще нет, либо она у полутора человек, им её и править. Linux way, чо - делать то, что реально нужно практикам.
     
  • 5.40, Аноним (-), 16:52, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > как это никому не нужны? А тысячи контейнеров в хостингах и у гуглов?

    А в тысячах контейнеров обычно все-таки свои интерфейсы, в своих неймспейсах. И это очень отдельный бенч, совсем иной ситуации. Но бздшники застрявшие на уровне jails просто не в курсе такой ерунды. Они лучше 65К айпи на один интрерфейс навесят.

     
  • 4.18, Andrew Kolchoogin (ok), 12:42, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Да пофигу. Она боясдэ - это достаточно, чтобы желать ей побыстрее сдохнуть.

    А мышки будут и дальше плакать и колоться, но продолжать есть кактус.

    Linux way, чо...

     
     
  • 5.22, Crazy Alex (ok), 13:22, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, не всем хочется стимулировать пятую колонну, полезную майкрософту, эпплу, сони и прочей подобной сволочи.

    А второй нюанс - это "преимцщество" бзды, как обычно, оказалось сомнительным. У меня сейчас этот однострочник закончился - к концу 0.024...0.027 с пиками до 0.036. То есть примерно _на порядок_ шустрее, чем у oops на фре. Никаких ожиданий по пол-часа и близко нет. Причин для такой разницы с результатами amarao может быть валом, но на кактус не слишком похоже :-)

     
     
  • 6.29, oops (ok), 15:41, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А второй нюанс - это "преимцщество" бзды, как обычно, оказалось сомнительным. У меня сейчас этот однострочник закончился - к концу 0.024...0.027 с пиками до 0.036. То есть примерно _на порядок_ шустрее, чем у oops на фре.

    Ну да, это прям честное сравнение и вменяемое тестирование =)

     
     
  • 7.32, Crazy Alex (??), 15:46, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> А второй нюанс - это "преимцщество" бзды, как обычно, оказалось сомнительным. У меня сейчас этот однострочник закончился - к концу 0.024...0.027 с пиками до 0.036. То есть примерно _на порядок_ шустрее, чем у oops на фре.
    > Ну да, это прям честное сравнение и вменяемое тестирование =)

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

     
     
  • 8.38, Аноним (-), 16:48, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У бздюков нормальное сравнение - если побеждает бзда Иначе это плохое, негодное... текст свёрнут, показать
     
  • 5.41, Аноним (-), 16:53, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Linux way, чо...

    Покажи например аналог ipset в бздах. Чтоб файрвол не стал колом при списке на 100500 айпишников.

     
  • 3.31, Аноним (-), 15:46, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот вам и боясдэ!

    Вот пусть кому надо зачем-то вешать на 1 и-фейс столько айпи и пользуются бояздами.

     
  • 3.39, Аноним (-), 16:51, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +/
    малый гонит просто... но меня бомбануло, да.. и я тут дурью пострадал:
    time for i in {1..254};do for j in {1..254};do time ip addr add 192.168.${i}.${j}/24 dev eth0.50;done;done
    ...
    real    0m0.005s
    user    0m0.000s
    sys     0m0.000s

    real    0m0.005s
    user    0m0.000s
    sys     0m0.000s

    real    3m31.167s
    user    0m3.803s
    sys     0m24.347s

    Linux 3.14.23 #2 SMP Wed Nov 5 19:46:54 MSK 2014 x86_64 Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz GenuineIntel GNU/Linux

     

  • 1.4, Аноннн (?), 21:58, 28/07/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Картинка интересна.
     
  • 1.6, Пабло Пикассо (?), 22:57, 28/07/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    В фотошопе рисовали графики?
     
     
  • 2.7, Аноним (-), 22:59, 28/07/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нормальные графики чо
     
     
  • 3.8, Пабло Пикассо (?), 23:00, 28/07/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Слишком недостоверно одинаковые
     
     
  • 4.9, yukra (?), 23:13, 28/07/2015 [^] [^^] [^^^] [ответить]  
  • +22 +/
    Люблю графики без подписей по обоим осям.
     
     
  • 5.20, Аноним (-), 12:50, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и так же всё понятно. Наша жизнь скоро станет в 36 раз лучше.
     

  • 1.10, Алсла (?), 23:42, 28/07/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Все равно фейсбукмненедруг . Рф
     
  • 1.11, Аноним (-), 03:57, 29/07/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Это ж насколько всё через задницу сделано было? И как получилось, что настолько кривой код был в ядре? Что-то я не помню новости о матюках Линуса в адрес авторов стека IPv6.
     
     
  • 2.12, Crazy Alex (ok), 04:17, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Распространённости пока особой нет - нет и багов в трекере, нет и повода их чинить. Более-менее сложную систему практически нереально протестировать в искусственных условиях, особенно если не на баги, а на производительность. Уж слишком много факторов, о половине которых и не догадаешься, пока о них не побьёшься.
     
     
  • 3.17, Andrew Kolchoogin (ok), 12:41, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Более-менее сложную систему практически нереально протестировать в искусственных условиях

    Ну-ну. Скажите это BSD'шникам, написавшим нормальный KAME практически в лабораторных условиях.

    Может быть, всё дело в том, что у Линуксоидов руки растут из того места, из которого у нормальных людей растут ноги?

     
     
  • 4.25, Crazy Alex (ok), 13:32, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хм, интересно, как можно оценить "нормальность", если нет широкой эксплуатации. Ванга сказала?

    Тебя не смущает, что ты сейчас выглядишь идиотом, споря с трюизмом? Ну да, нет способа сказать, какой трафик будет распространён, какие технологии станут модными через год (и какие ресурсы они потребуют в ядре), какие техники DDOS станут популярными, и так далее. Поэтому либо практика - критерий истины, либо иди писать на каком-нибудь хаскеле красивых сферических коней в вакууме.

     
  • 3.28, Аноним (-), 15:12, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Более-менее сложную систему практически нереально протестировать в искусственных условиях, особенно если не на баги, а на производительность. Уж слишком много факторов, о половине которых и не догадаешься, пока о них не побьёшься.

    Можно-можно. Но это чрезвыйчайно трудоемко. Трудоемкость такая что затраты на тестирование сильно перекрывают затраты проектирования и разработки (я занимался подобными делами). Вооруженные силы - это кажется единственный случай когда есть смысл вкладываться в подобные этапы.

     
     
  • 4.30, Crazy Alex (??), 15:42, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, наль было оговориться, что я коммерческие системы имел с виду. Хоия в вашем соучае, полагаю, условия эксплуатации более контролируемы.
     
  • 3.45, fi (ok), 15:04, 30/07/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Распространённости пока особой нет

    Ничего, сейчас запустят v6 как миленькие :)

    зы. пишут что v4 совсем в штатах закончились, теперь будут делать --force v4=>v6

     

  • 1.34, Аноним (-), 16:34, 29/07/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    млин, социальные сети - средоточие лучших спецов. дожили.
     
     
  • 2.42, Аноним (-), 17:19, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > млин, социальные сети - средоточие лучших спецов. дожили.

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

     
  • 2.43, Crazy Alex (ok), 18:02, 29/07/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Дык, прогресс делается на деньги дураков. Лишь бы дальше распространялся, но с этим, как видим, всё в порядке
     
  • 2.44, Аноним (-), 12:35, 30/07/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ничего что в адалте такие нагрузки, что вам и не снились? Или, может, снились, но в мокрых снах? )
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру