Перейти до

Сетевая использует одно ядро


Рекомендованные сообщения

Уважаемый ТС. Вам тут пудрят мозги. Ни SMP Affinity ни irq balance тем более тут непричем. Обратите внимание на то как определилась ваша сетевая. 19: 51709 45412455 IO-APIC-fasteoi eth0. Одно прерывание да еще и по APIC. Одно прерывание в ядрах до 2.6.32 не может обрабатываться больше чем одним ядром. Никогда. На то оно и прерывание. Говорят с 2.6.32 появились soft очереди, но лично я не тестил еще.

 

Для того чтобы решить вашу задачу - Вам нужно чтобы сетевая была правильно инициализирована ядром. С поддержкой MSI, MSI-X векторов. Для этого надо иметь минимум ядро 2.6 т.к. 2.4 не имеет поддержки MSI вообще.

Скорее не "пудрят мозги" а сами не до конца разбираются в теме. За hint с MSI/MSI-X спасибо. Я так понимаю для его использования должна быть поддержка со стороны устройства, карты и ядра?

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

Тема продолжается, зашол на машину на которой проц используется равномерно так вот что там

Сетевушшка d-link gigabit (если надо могу найти точную модель)

19: 449 449 IO-APIC-fasteoi uhci_hcd:usb2, ata-piix, eth0

uname -a

2.6.26-2-amd64

Кстати на моем роутере токоеже ядро u2.6.26-2-amd64

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

Уважаемый ТС. Вам тут пудрят мозги. Ни SMP Affinity ни irq balance тем более тут непричем. Обратите внимание на то как определилась ваша сетевая. 19: 51709 45412455 IO-APIC-fasteoi eth0. Одно прерывание да еще и по APIC. Одно прерывание в ядрах до 2.6.32 не может обрабатываться больше чем одним ядром. Никогда. На то оно и прерывание. Говорят с 2.6.32 появились soft очереди, но лично я не тестил еще.

 

Для того чтобы решить вашу задачу - Вам нужно чтобы сетевая была правильно инициализирована ядром. С поддержкой MSI, MSI-X векторов. Для этого надо иметь минимум ядро 2.6 т.к. 2.4 не имеет поддержки MSI вообще.

Извините, но бред. Стоит машина с федорой и 2.6.25 ядром, боротовые интеловские сетевки работающие с APIC_FASTIO и замечательно генерируются прерывания на любое число ядер в зависимости от smp_affinity. MSI с перрываниями вообще лишь косвенно связано, а в MSI-X появилась поддержка очередей и соответственно генерация нескольких векторов прерываний _одновременно_.

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

2madf: MSI, MSI-X должны уметь ядро, карта, драйвера к устройству. У интела с этим не наблюдается никаких проблем. Ядро 2.6.27 отлично с этим делом работает. Младшие ядра тоже должны. Читайте мануал к дровам интела, там толково расписано какие ядра для каких фич лучше использовать. Сами карты умеют кучу разных полезных выкрутасов делать, помимо разноса очередей по ядрам.

 

2kayotster: Вы разницу между APIC и MSI прерываниями улавливаете? Потому что судя по вашему посту - нет. То что прерывания генерируются на любое количество ядер говорит лишь о том, что у вас нет smp_affinity для конкретных прерываний ваших сетевых, вот их и разносит по всем ядрам. При этом прерывания генерируются _по-одному_ друг за другом, последовательно а не паралельно.

 

Если у Вас сетевых интерфейсов в карте фактически несколько, то, да, будет столько прерываний, сколько интерфейсов проинциализированно. Для APIC.

 

Сетевые же карты, не могут меть любое количество прерываний, на любое количество ядер, потому как прерывания на сетевых картах = количеству очередей, которая данная карта поддерживает. Чем больше очередей, тем, логичнее, дороже карта. Несколько очередей карты умеют только в режиме MSI-X.

 

А у Вас прямо идилия какая-то.

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

MSI умеют практически все(или все) pcie карты, но кроме этого его должен уметь еще и чипсет материнки. А вот с этим уже не так весело.

Ну а MSI-X работает у интелов начиная с 82575/82576(ET board), от материнки требуется умение работать с MSI.

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

2kayotster: Вы разницу между APIC и MSI прерываниями улавливаете? Потому что судя по вашему посту - нет. То что прерывания генерируются на любое количество ядер говорит лишь о том, что у вас нет smp_affinity для конкретных прерываний ваших сетевых, вот их и разносит по всем ядрам. При этом прерывания генерируются _по-одному_ друг за другом, последовательно а не паралельно.

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

 

Что такое APIC, MSI, MSI-X я знаю не по наслышке. Сам собирал и обслуживаю десяток серверов разного возраста с разнообразными матерями и сетевками, от простых бортовых до двухголовых intel ET, замечательно работающих в MSI-X..

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

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

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

Даже если у вас получится раскидать нагрузку по ядрам лучше не станет. Будет на обоих ядрах 50% и все, те же тормоза и чудеса))

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

Даже если у вас получится раскидать нагрузку по ядрам лучше не станет. Будет на обоих ядрах 50% и все, те же тормоза и чудеса))

А почему так?

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

Потому что обработкой в один момент времени занимается одно ядро. Хоть насколько раскидайте, но больше 100% с одного ядра забрать не получится. В top'e будет 50% одно, 50% второе, но на самом деле будет несколько раз в секунду 100% одно и 0% второе и наоборот.

Реально поможет или сетевка с очередями, или(возможно) ядро 2.6.35 с софтовыми очередями(RSS/RPS). Ну или еще одна сетевка, еще проще наверное)

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

И как обновить ядро если можно по шагово?

Ядерная физика для домохозяек. Возможно, немного старовато, но вполне актуально.

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

вот тоже как раз тестируем 2.6.35+ (RPS+RFS) - у нас лучше нигде не стало, я бы даже сказал хуже ( возможно не те задачи жрут большую часть времени, и разброс очередей по процам ничего не дает. ну и инфы пока мало... понятно что фишка оч полезная, но толк от нее будет только при определененных проблемах.

 

железо - двухпроцессорный (2хXeon 2.8) 6Гб.

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

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

Всем советую такое решение.

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

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

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

По-моему у меня было такое на релизе FreeBSD 8.1. Сыпало в первую консоль сплошным потоком. Пропатчил и сие ушло. Патч нашёл по Гуглю.

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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...