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

Freebsd и Intel FTXL710AM1 (Silicom PE310G4i71LB-XR) Распределение нагрузки по ядрам

Коллеги , скажите , кто то использовал данную карту.

Стоит FreeBSD 11, 2хXeon 5650 12 ядер без гипертрейдинга и карта Silicom PE310G4i71LB-XR , чипсет Intel FTXL710AM1

Судя по статистике , нагрузку гонят тока на 8 ядрах, 4 пустуют.

Не подскажите как заставить использовать все ядра , или может она может только 8 очередей использовать ?

 

CPU 0: 0.0% user, 0.0% nice, 0.0% system, 15.7% interrupt, 84.3% idle

CPU 1: 0.0% user, 0.0% nice, 0.0% system, 16.5% interrupt, 83.5% idle

CPU 2: 0.0% user, 0.0% nice, 0.0% system, 15.4% interrupt, 84.6% idle

CPU 3: 0.0% user, 0.0% nice, 0.4% system, 12.2% interrupt, 87.4% idle

CPU 4: 0.0% user, 0.0% nice, 0.4% system, 20.5% interrupt, 79.1% idle

CPU 5: 0.0% user, 0.0% nice, 0.0% system, 14.6% interrupt, 85.4% idle

CPU 6: 0.0% user, 0.0% nice, 0.0% system, 16.1% interrupt, 83.9% idle

CPU 7: 0.0% user, 0.0% nice, 0.0% system, 13.8% interrupt, 86.2% idle

CPU 8: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle

CPU 9: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle

CPU 10: 0.0% user, 0.0% nice, 1.2% system, 0.0% interrupt, 98.8% idle

CPU 11: 0.0% user, 0.0% nice, 0.8% system, 0.0% interrupt, 99.2% idle

Edited by voodoo

Share this post


Link to post
Share on other sites

http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf

 

MSI-X: Supports up to 1168 MSI-X vectors, shared among PFs and VFs. Up to 129 MSI-X interrupts can be

assigned to a single PF and up to 17 MSI-X interrupts can be assigned to a single VF, depending on the number

of enabled functions.

 

В драйвере для дефолта:

queues = (mp_ncpus > (available - 1)) ? (available - 1) : mp_ncpus;

 

Возможно, на маме не хватает свободных прерываний.

Share this post


Link to post
Share on other sites

Если это не пппое то попробуй:

sysctl net.isr.dispatch=deferred

 

Данная команда вообще в одно ядро все переводит (

 

В драйвере для дефолта:

queues = (mp_ncpus > (available - 1)) ? (available - 1) : mp_ncpus;

 

Возможно, на маме не хватает свободных прерываний.

 

Можно попродробнее, в данный момент стоит штатфный драйвер Feebsd ничего на нем не менялось.

Дравейр стоит

ixl0: <Intel(R) Ethernet Connection XL710/X722 Driver, Version - 1.6.6-k> mem 0x
ixl0: Using MSIX interrupts with 9 vectors
ixl0: fw 5.0.40043 api 1.5 nvm 5.02 etid 80002248 oem 0.0.0
ixl0: PF-ID[0]: VFs 32, MSIX 129, VF MSIX 5, QPs 384, I2C
ixl0: Allocating 8 queues for PF LAN VSI; 8 queues active
ixl0: Ethernet address: 00:e0:ed:75:1d:56
ixl0: PCI Express Bus: Speed 5.0GT/s Width x8
ixl0: PCI-Express bandwidth available for this device may be insufficient for op
ixl0: For optimal performance, a x8 PCIE Gen3 slot is required.
ixl0: SR-IOV ready
ixl0: netmap queues/slots: TX 8/1024, RX 8/1024

Edited by voodoo

Share this post


Link to post
Share on other sites

Нету у меня 11-ой фри. На 10.3 смотрел.

 

"man ixl" дает hw.ixl.max_queues. Идем в /usr/src/sys/dev/ixl и grep-им его на предмет поведения при умолчательном 0 в этой sysctl.

 

Оно мне и дало эту строчку. Читать как:

 

ЕСЛИ процессоров больше чем свободных прерываний - 1

ТО очередей будет = свободных прерываний - 1

ИНАЧЕ количество процессоров

Share this post


Link to post
Share on other sites

Нету у меня 11-ой фри. На 10.3 смотрел.

 

"man ixl" дает hw.ixl.max_queues. Идем в /usr/src/sys/dev/ixl и grep-им его на предмет поведения при умолчательном 0 в этой sysctl.

 

Оно мне и дало эту строчку. Читать как:

 

ЕСЛИ процессоров больше чем свободных прерываний - 1

ТО очередей будет = свободных прерываний - 1

ИНАЧЕ количество процессоров

 

Если попробовать поставить в loader.conf

hw.ixl.max_queues = Количество ядер , изменит нет

потому как по умолчанию стоит 0 , ман говорит что если 0 , то автовычисление

https://www.freebsd.org/cgi/man.cgi?query=ixl&sektion=4

hw.ixl.max_queues
Set the number of queues (each a TX/RX pair) for the port,	this
allows one	to override the	autocalculation	if it is set to	0.

Share this post


Link to post
Share on other sites

Данная команда вообще в одно ядро все переводит (

Там рядом крутилка есть чтобы количество потоков задать.

net.isr.numthreads: 16

net.isr.bindthreads: 1

net.isr.maxthreads: 16

в лодере пропиши и ребут.

Share this post


Link to post
Share on other sites

Данная команда вообще в одно ядро все переводит (

Там рядом крутилка есть чтобы количество потоков задать.

net.isr.numthreads: 16

net.isr.bindthreads: 1

net.isr.maxthreads: 16

в лодере пропиши и ребут.

 

У меня 12 ядер , 12 нужно указать ? )

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

Share this post


Link to post
Share on other sites

Я вообще 1024 пишу, система сама правит до реальных цифр.

ИМХО лучше без, но можешь попробовать и так и так, ибо моё мнение базируется на теории без практики на современных процах.

Share this post


Link to post
Share on other sites

Обратил внимание что сейчас в FreeBSD поддержка ipfw и nat идет как отдельный подгружаемый модуль в ядро , или лучше скомпилировать ядро с поддержкой IPFW

Share this post


Link to post
Share on other sites

Обратил внимание что сейчас в FreeBSD поддержка ipfw и nat идет как отдельный подгружаемый модуль в ядро , или лучше скомпилировать ядро с поддержкой IPFW

 

Все равно. Обычно при сетевых картах 10Г ОЗУ хватает.

Share this post


Link to post
Share on other sites

Обратил внимание что сейчас в FreeBSD поддержка ipfw и nat идет как отдельный подгружаемый модуль в ядро , или лучше скомпилировать ядро с поддержкой IPFW

Уже лет 5+.

Без разницы, есть нюансы с дефолт аккепт/режект при загрузке но не более.

Share this post


Link to post
Share on other sites

Появилась проблема, через некоторое время, несколько часов работы под нагрузкой, kernel заваливает все ядра проца в потолок 100% , в логах ничего , и не понятно почему такое происходит, кто то встречал такое ?

Share this post


Link to post
Share on other sites

Появилась проблема, через некоторое время, несколько часов работы под нагрузкой, kernel заваливает все ядра проца в потолок 100% , в логах ничего , и не понятно почему такое происходит, кто то встречал такое ?

kldload hwpmc

pmcstat -TS instructions -w1

 

В помощь!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.