Jump to content
Калькуляторы

Распределение нагрузки по ядрам в Debian Jessie Лезем вглубь! Интересный и развернутый спич

Как показывает практика - очень много нюансов кроется в ядре, драйвере и в конкретных настройках.

Вот я и спрашиваю, кто-то реально раскачивал эти карты до 5-8 Гбит или это фикция? А если раскачивал, то под каким ядром, драйвером и с какими опциями?

 

А то мы с mirk'ом месяц танцуем с бубном - а оно может и ядро не то и драйвер не тот...

Share this post


Link to post
Share on other sites

все рецепты которые были изложены выше не помогают

А точно все рецепты были испробованы? Я так и не понял, вы до сих пор на дебиане?

Share this post


Link to post
Share on other sites

я уже не знаю куда смотреть.

 

Смотреть в шейпер, что нагородили и как.

У нас используются карты 82599ES на "роутерах" (не совсем верное определение) OpenStack Neutron в связке 2x10G или 4x10G. На нормальном разношерстном трафике, никаких магий тюнинга совсем не надо, все едет само. Если же трафик однороден - включаем RPS + RFS и получаем с каждой 9.5Gbit/s, практически полку. Еще раз, что бы кто бы тут не говорил, карты не виноваты. Неравномерная нагрузка на ядра вам глаз режет, но это даже не проблема - это лишь следствие работы RSS-хеша в карте, и само по себе не нуждается в лечении. Делайте perf top, определяйте кто тормозит систему (да-да, локинг вредная штука), и переделывайте. (пальцем в небо: виноват классификатор)

Share this post


Link to post
Share on other sites

Или вас просто задело, что в стабильном дистрибутиве с поддержкой в 5+ лет, который не ломается от апдейтов, можно легко и непринужденно поиметь свежее актуальное ядро, а ваша БСД так не умеет? Другого объяснения вашим попыткам прикопаться к столбу я не вижу...

 

Задело? Лол :) Меня просто позабавило как с школьным рвением пионеры меняют части стабильной ОС потому что старый хлам их уже не устраивает, а свежие дистрибы они не ставят из-за скудности понимания релиз-экосистемы, при этом, с одной стороны верят в "магию" коммьюнити-энтерпрайза (что само по-себе оксюморон!) а с другой думают, что замена движка в заводском автомобиле на самопал от любителя с соседнего гаража никак не меняет автомобиль, и не видят в том никакой проблемы, иметь хлам из одной эпохи с двигателем из другой.

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

Share this post


Link to post
Share on other sites

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

Ну если вас устраивает каждые полгода-год иметь геморрой с обновлением дистра (включая юзерленд с меняющимися дефолтами) - дело ваше, моете ставить какую-то опенсусю или вообще сидеть на rolling-release системах.

 

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

О да, очередные беспочвенные фантазии бздоида, основанные на его представлениях об ОС...

Повторяюсь - не натягивайте реалии унылой бзди на линукс. В линуксе вы можете взять дистр с древним 2.4 ядром начала 2000-х, собрать в него свежее 4.1 ядро, и все будет прекрасно работать. Максимум - собрать в довесок iptables + iproute2 чтобы свежие фичи заюзать, которые отсутствовали в 2.4. Да-да, именно потому, что линукс - это ядро, имеющее стабильное API с юзерспейсом. В бзде такое не прокатит, только полное обновление системы (причем - сугубо через кучу промежуточных релизов, которое к тому же с большой вероятностью окончится печально - соседний топик о развалившейся при апгрейде версий бзде тому яркий пример).

Share this post


Link to post
Share on other sites

Господи, вы там на уроках что-ли придумываете столь отборный булшит? :)

Share this post


Link to post
Share on other sites

DVM-Avgoor

Специально для вас могу накатить на какой-то Redhat 7.3 возрастом в 10+ лет свежее ядро, чтобы убедились, я 2.6.30 что ли собирал в свое время ради интереса.

Повторюсь, линь - не бздя, в которой ядро прибито гвоздями к юзерленду т.к. студенты не осилили наваять стандарт API.

Share this post


Link to post
Share on other sites

snvoronkov я имею ввиду не API ядерных модулей, а API юзерленда. Или вы при каждом обновлении ядра перекомпилируете системные библиотеки типа glibc, как это происходит в бзде? :)

Share this post


Link to post
Share on other sites

DVM-Avgoor

Специально для вас могу накатить на какой-то Redhat 7.3 возрастом в 10+ лет свежее ядро, чтобы убедились, я 2.6.30 что ли собирал в свое время ради интереса.

Повторюсь, линь - не бздя, в которой ядро прибито гвоздями к юзерленду т.к. студенты не осилили наваять стандарт API.

 

реально всё равно что-то отваливается потихоньку, например ss/netstat не будет нормально работать в этом случае. так конечно, да, в целом согласен. приятно, когда на debian6 или centos6 можно накатывать относительно свежие ядра, не обновляя всю систему, сам пару раз этим пользовался(лениво было делать dist-upgrade ради netfliter TEE - копирование трафика, в одном из случаев), но всё же лучше поддерживать окружение констистентным, не зря же тот же iproute2 живёт в гите рядом с ядром, а то не очень прикольно когда в /opt-е уже и iptables и ip и ещё хрень какая-то лежит

Share this post


Link to post
Share on other sites

snvoronkov я имею ввиду не API ядерных модулей, а API юзерленда. Или вы при каждом обновлении ядра перекомпилируете системные библиотеки типа glibc, как это происходит в бзде? :)

Не то. И api приложений тоже очень часто меняется от версии ведра. В бубунте, например, (держу на десктопе) периодически вносят изменения в пользовольское окружение перед выкатыванием бэкпорта ведра новой стабильной ветки в lts.

Share this post


Link to post
Share on other sites

реально всё равно что-то отваливается потихоньку

Ну после замены ядра с 2.4 на 2.6 на первый взгляд ничего существенного не отвалилось.

 

но всё же лучше поддерживать окружение констистентным, не зря же тот же iproute2 живёт в гите рядом с ядром, а то не очень прикольно когда в /opt-е уже и iptables и ip и ещё хрень какая-то лежит

Ну если какая-то новая фича ядра нужна - то да, придется свой пакет из srpm сваять (дел на 5 минут).

 

И api приложений тоже очень часто меняется от версии ведра. В бубунте, например, (держу на десктопе) периодически вносят изменения в пользовольское окружение перед выкатыванием бэкпорта ведра новой стабильной ветки в lts.

Какие именно изменения?

Поставьте gentoo, и убедитесь что от версии ядра ничего не зависит. А "стабильные" хидеры ядра в генте устарели эдак на полгода-год.

Share this post


Link to post
Share on other sites

Какие именно изменения?

Поставьте gentoo, и убедитесь что от версии ядра ничего не зависит. А "стабильные" хидеры ядра в генте устарели эдак на полгода-год.

Понятно с Вами всё. Продолжайте дальше в том-же духе :-).

Share this post


Link to post
Share on other sites

Понятно с Вами всё. Продолжайте дальше в том-же духе :-).

Т.е. в вашей альтернативной реальности у линукса отсутствует обратная совместимость API юзерспейса? Как все печально у вас...

Share this post


Link to post
Share on other sites

Понятно с Вами всё. Продолжайте дальше в том-же духе :-).

Т.е. в вашей альтернативной реальности у линукса отсутствует обратная совместимость API юзерспейса? Как все печально у вас...

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

Share this post


Link to post
Share on other sites

Парни, без обид. Мы тут хотели помощь клуба так сказать получить, а тема периодически сваливается на меряние пиписьками.

Давайте по существу.

DVM-Avgoor, у вас просто перекладывается трафик с одного интерфейса на другой или есть дополнительная обработка (фильтрация, шейпинг, нат)?

Share this post


Link to post
Share on other sites

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

Ни разу ничего не ломалось в процессе обновления ядра на rolling-release дистре (gentoo, на домашнем тазике юзаю). И тем более не приходилось пересобирать весь юзерленд при обновлении ядра.

 

Один /dev столько дури несет

он формируется всецело udev'ом или что там в дистре... Ядро не имеет к структуре /dev отношения.

Share this post


Link to post
Share on other sites

DVM-Avgoor, у вас просто перекладывается трафик с одного интерфейса на другой или есть дополнительная обработка (фильтрация, шейпинг, нат)?

Фильтрации много, шейпинга нет, НАТ местами. Много всякого openvswitch еще :)

Share this post


Link to post
Share on other sites

Давайте по существу.

Уже ж говорили, что у вас шейпер тормозит скорее всего.

Берите пример у крупных датацентров, не включайте никому шейпер, пока не переберут определенное количество трафика. Подбирайте количество так, чтобы для 95% юзеров шейпер не включался, а лучше для 99%. Так нагрузки от шейпера вообще не будет.

Edited by ttttt

Share this post


Link to post
Share on other sites

он формируется всецело udev'ом или что там в дистре... Ядро не имеет к структуре /dev отношения.

Угу. И хуки удава к ведру при компилянии последнего - глюкодром, наверное... :-)

Ни разу ничего не ломалось в процессе обновления ядра на rolling-release дистре (gentoo, на домашнем тазике юзаю). И тем более не приходилось пересобирать весь юзерленд при обновлении ядра.

Типа, во фре или дебе оно постоянно ломается. :-) Там тоже юзерлэнд от какого-нить замшелого релиза будет работать и выполнять 99 с гаком %% операций на ядре от свежего выпуска. Но ИНОГДА оно ломается. Так было где-то на ядрах в ubuntu толи 8.04, толи 10.04. Так изредка выплявает на фре.

 

Вобщем, оффтоп и ниачем. Закругляемся, наверное.

Share this post


Link to post
Share on other sites

И хуки удава к ведру при компилянии последнего - глюкодром, наверное... :-)

Ядро сообщает юзерленду, что найдено устройство. Все. Как юзерленд создаст ноду в /dev - его личное горе.

 

Типа, во фре или дебе оно постоянно ломается.

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

Share this post


Link to post
Share on other sites

Ну как говорят бздоиды, в бзде под каждое ядро надо пересобирать либы.

 

Сходу:

https://svnweb.freebsd.org/base/head/UPDATING?revision=285232&view=markup

 

Читать, начиная со строки 1204:

To upgrade in-place from stable to current

----------------------------------------------

<make sure you have good level 0 dumps>

make buildworld [9]

make kernel KERNCONF=YOUR_KERNEL_HERE [8]

[1]

<reboot in single user> [3]

mergemaster -Fp [5]

make installworld

mergemaster -Fi [4]

make delete-old [6]

<reboot>

 

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

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
Sign in to follow this