Facebook представил (https://code.facebook.com/posts/1123882380960538/linux-ipv6-.../) серию патчей, решающих проблемы с масштабируемостью IPv6-стека в ядре Linux. В частности, подготовлена (http://www.spinics.net/lists/netdev/msg330403.html) реализация системы заполнения кэша маршрутизации по необходимости (cache on demand), позволяющая преодолеть проблему с разрастанием дерева маршрутов IPv6, которая приводит к повышенной нагрузке на CPU и неэффективной работе сборщика мусора.
При оценке эффективности работы кэша на одном из рабочих серверов для таблиц /128 в дерево маршрутов попало 300 тысяч маршрутов, при том, что 299 тысяч были созданы впустую. Применение патча позволило кардинально сократить число элементов в дереве маршрутов, оставив там только необходимые записи. В итоге, на тестовой системе каждый запуск сборщика мусора с патчем приводит к чистке примерно 500 записей, вместо 200 тысяч элементов кэша при использовании обычной конфигурации.Из других патчей отмечается оптимизация (http://www.spinics.net/lists/netdev/msg301225.html) выполнения вызова fib6_lookup() и решение (http://www.spinics.net/lists/netdev/msg326680.html) ряда проблем для маршрутов /128. Подготовленные изменения уже переданы для включения в состав основного ядра Linux. В дальнейшем оптимизацию планируется продолжить, так как по оценке Facebook из-за неэффективных методов блокировки произвольность IPv6-стека примерно на 10 процентов отстаёт от стека IPv4.
<center><a href="https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-xaf1/t39.2365... src="http://www.opennet.me/opennews/pics_base/0_1438104999.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
URL: https://code.facebook.com/posts/1123882380960538/linux-ipv6-.../
Новость: http://www.opennet.me/opennews/art.shtml?num=42682
>неэффективной работе сборщика мусораА расскажите кто в курсе дел, что это за сборщик мусора такой? Он внутренний для обслуживания IPv6 или это что-то общеядерное?
че, лет ми гугл зис фор ю
http://lxr.free-electrons.com/ident?i=fib6_run_gc
На будущее: http://lmgtfy.com/?q=fib6_run_gc
Короче, ты не знаешь
> проблему с разрастанием дерева маршрутов IPv6, которая приводит к повышенной нагрузке на CPUДык в ядре уже есть похожие проблемы...
Хорошо мысль донёс amarao в одном из своих коментов на Хабре (http://habrahabr.ru/company/wargaming/blog/256647/#comment_8...).
Скорее всего потому, что так извращаться просто никому особо не нужно
любопытный эксперимент озвучил 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Никаких проблем. Система себя чувствует отлично!
Вот вам и боясдэ!
Да пофигу. Она боясдэ - это достаточно, чтобы желать ей побыстрее сдохнуть.Ну и да, если оно в линуксе до сих пор так и лаже бага в багтрекере не видно - значит, такие извраты вообще никому не нужны.
> Да пофигу. Она боясдэ - это достаточно, чтобы желать ей побыстрее сдохнуть.
> Ну и да, если оно в линуксе до сих пор так и
> лаже бага в багтрекере не видно - значит, такие извраты вообще
> никому не нужны.как это никому не нужны? А тысячи контейнеров в хостингах и у гуглов?
Вот так. Вы видели где-то в интернете жалобы на это, связанные с реальными ситуациями, а не синтетику от амарао?Кстати, на первый взгляд там ничего запредельно сложно исправляемого не происходит - где-то используется алгоритм со сложностью хуже линейной, куда надо хэш-таблицу или дерево запихнуть.
> Вы видели где-то в интернете жалобыДа-да. Этого не было на дваче. :)
Если проблема распространена - о ней говорят. А если молчат - значит,либо е вообще нет, либо она у полутора человек, им её и править. Linux way, чо - делать то, что реально нужно практикам.
> как это никому не нужны? А тысячи контейнеров в хостингах и у гуглов?А в тысячах контейнеров обычно все-таки свои интерфейсы, в своих неймспейсах. И это очень отдельный бенч, совсем иной ситуации. Но бздшники застрявшие на уровне jails просто не в курсе такой ерунды. Они лучше 65К айпи на один интрерфейс навесят.
> Да пофигу. Она боясдэ - это достаточно, чтобы желать ей побыстрее сдохнуть.А мышки будут и дальше плакать и колоться, но продолжать есть кактус.
Linux way, чо...
Ну да, не всем хочется стимулировать пятую колонну, полезную майкрософту, эпплу, сони и прочей подобной сволочи.А второй нюанс - это "преимцщество" бзды, как обычно, оказалось сомнительным. У меня сейчас этот однострочник закончился - к концу 0.024...0.027 с пиками до 0.036. То есть примерно _на порядок_ шустрее, чем у oops на фре. Никаких ожиданий по пол-часа и близко нет. Причин для такой разницы с результатами amarao может быть валом, но на кактус не слишком похоже :-)
> А второй нюанс - это "преимцщество" бзды, как обычно, оказалось сомнительным. У меня сейчас этот однострочник закончился - к концу 0.024...0.027 с пиками до 0.036. То есть примерно _на порядок_ шустрее, чем у oops на фре.Ну да, это прям честное сравнение и вменяемое тестирование =)
>> А второй нюанс - это "преимцщество" бзды, как обычно, оказалось сомнительным. У меня сейчас этот однострочник закончился - к концу 0.024...0.027 с пиками до 0.036. То есть примерно _на порядок_ шустрее, чем у oops на фре.
> Ну да, это прям честное сравнение и вменяемое тестирование =)Нормальное сравнение - как и вы прогнал скрипт на первой попавгейся машине. И увидел, почему стонов в интернетах нет - потому что проблема какая-то экзотическая.
У бздюков нормальное сравнение - если побеждает бзда. Иначе это плохое, негодное сравнение.
> Linux way, чо...Покажи например аналог ipset в бздах. Чтоб файрвол не стал колом при списке на 100500 айпишников.
> Вот вам и боясдэ!Вот пусть кому надо зачем-то вешать на 1 и-фейс столько айпи и пользуются бояздами.
малый гонит просто... но меня бомбануло, да.. и я тут дурью пострадал:
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.000sreal 0m0.005s
user 0m0.000s
sys 0m0.000sreal 3m31.167s
user 0m3.803s
sys 0m24.347sLinux 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
Картинка интересна.
В фотошопе рисовали графики?
Нормальные графики чо
Слишком недостоверно одинаковые
Люблю графики без подписей по обоим осям.
Ну и так же всё понятно. Наша жизнь скоро станет в 36 раз лучше.
Все равно фейсбукмненедруг . Рф
Это ж насколько всё через задницу сделано было? И как получилось, что настолько кривой код был в ядре? Что-то я не помню новости о матюках Линуса в адрес авторов стека IPv6.
Распространённости пока особой нет - нет и багов в трекере, нет и повода их чинить. Более-менее сложную систему практически нереально протестировать в искусственных условиях, особенно если не на баги, а на производительность. Уж слишком много факторов, о половине которых и не догадаешься, пока о них не побьёшься.
> Более-менее сложную систему практически нереально протестировать в искусственных условияхНу-ну. Скажите это BSD'шникам, написавшим нормальный KAME практически в лабораторных условиях.
Может быть, всё дело в том, что у Линуксоидов руки растут из того места, из которого у нормальных людей растут ноги?
Хм, интересно, как можно оценить "нормальность", если нет широкой эксплуатации. Ванга сказала?Тебя не смущает, что ты сейчас выглядишь идиотом, споря с трюизмом? Ну да, нет способа сказать, какой трафик будет распространён, какие технологии станут модными через год (и какие ресурсы они потребуют в ядре), какие техники DDOS станут популярными, и так далее. Поэтому либо практика - критерий истины, либо иди писать на каком-нибудь хаскеле красивых сферических коней в вакууме.
> Более-менее сложную систему практически нереально протестировать в искусственных условиях, особенно если не на баги, а на производительность. Уж слишком много факторов, о половине которых и не догадаешься, пока о них не побьёшься.Можно-можно. Но это чрезвыйчайно трудоемко. Трудоемкость такая что затраты на тестирование сильно перекрывают затраты проектирования и разработки (я занимался подобными делами). Вооруженные силы - это кажется единственный случай когда есть смысл вкладываться в подобные этапы.
Ну да, наль было оговориться, что я коммерческие системы имел с виду. Хоия в вашем соучае, полагаю, условия эксплуатации более контролируемы.
> Распространённости пока особой нетНичего, сейчас запустят v6 как миленькие :)
зы. пишут что v4 совсем в штатах закончились, теперь будут делать --force v4=>v6
млин, социальные сети - средоточие лучших спецов. дожили.
> млин, социальные сети - средоточие лучших спецов. дожили.Ну так у них есть большие нагрузки и деньги. Не самое плохое место для спецов получается. Интересные задачи бывают в самых неожиданных местах.
Дык, прогресс делается на деньги дураков. Лишь бы дальше распространялся, но с этим, как видим, всё в порядке
Ничего что в адалте такие нагрузки, что вам и не снились? Или, может, снились, но в мокрых снах? )