sed 's/\(=[[:blank:]]*\)\(.*\)/\1"\2"/'
Добавлял бы кавычки вокруг того, что находится справа от знак равенства, за которым следует любое количество пробелов.
См. Как сделать настройку kern.ipc.somaxconn постоянной?
Remove quotes "
dev.ixl.1.iflib.override_qs_enable=1
dev.ixl.1.iflib.override_nrxqs=16
dev.ixl.1.iflib.override_ntxqs=16
Проверка с помощью /etc/rc.d/sysctl start
илиservice sysctl restart
В более ранних версиях FreeBSD вы обычно устанавливали hw.ixl.max_queues
. Но похоже, что драйвер ixl изменился на использование iflib с FreeBSD 12.
После sysctl -d dev.ixl
мы действительно можем подтвердить, что драйвер использует iflib
dev.ixl.1.iflib.override_qs_enable: permit #txq != #rxq
dev.ixl.1.iflib.override_nrxqs: # of rxqs to use, 0 => use default #
dev.ixl.1.iflib.override_ntxqs: # of txqs to use, 0 => use default #
Поиск в Интернете подтверждает это, так как мы можем найти diff, который добавляет его в драйвер(rS335338 :ixl (4 ):Обновление для использования iflib).
В настоящее время установлены настройки по умолчанию:
dev.ixl.1.iflib.override_qs_enable: 0
dev.ixl.1.iflib.override_nrxqs: 0
dev.ixl.1.iflib.override_ntxqs: 0
Это должно установить количество очередей на количество ядер (В данном случае 8 ). На справочной странице iflib указано, что они должны быть установлены перед загрузкой драйвера. Перезапуск sysctl нам тогда не поможет -только перезагрузка.
Затем мы должны установить/boot/loader.conf
:
dev.ixl.1.iflib.override_qs_enable=1
dev.ixl.1.iflib.override_nrxqs=16
dev.ixl.1.iflib.override_ntxqs=16
После этого вы должны перезагрузиться и проверить с помощью dmesg | grep ^ixl
и sysctl dev.ixl.1.iflib
.
Ваш текущий вывод из dmesg
был:
ixl0: pxm cpus: 8 queue msgs: 128 admincnt: 1
ixl0: using 8 rx queues 8 tx queues
ixl1: pxm cpus: 8 queue msgs: 128 admincnt: 1
ixl1: using 8 rx queues 8 tx queues
Вы утверждаете, что делали все это раньше безрезультатно.
Если мы посмотрим в отчет об ошибке Ошибка 230465 -ixl :, не работающий в режиме сетевой карты , мы, тем не менее, получим подтверждение от Джеффа Пипера . Шарль Гонсалвес далее подтверждает, что у него это работает.
Это довольно типичный способ настройки во FreeBSD, и он обычно работает. Как всегда, это может быть глючным драйвером, но с приведенным выше подтверждением я думаю, что нет. У меня нет карты ixl, поэтому, к сожалению, я не могу ничего подтвердить.
Вы упоминаете и kenv
. И Джефф Пипер подтверждает, что это можно установить. Но учтите, что вы можете использовать kenv
только при работе с модулем драйвера, а не со статическим драйвером в ядре!
Таким образом, с учетом вышеизложенного я бы сказал, что «ShouldWork (tm )» с настройками в loader.conf
с драйвером ядра в FreeBSD 12 (или более поздней версии ). И это напоминание почти всегда добавлять uname -a
к любым вопросам, связанным с FreeBSD.
Вы также сообщили dev.ixl.1.iflib.driver_version: 2.1.0-k
. Я предполагаю, что это версия статического ядра драйвера. Согласно справочной странице ixl , вышестоящий драйвер от Intel обновляется чаще и поставляется в net/intel -ixl -kmod .
Если вы хотите пойти по этому маршруту -, убедитесь, что вы заполнили /usr/src
и имеете дерево портов с -по -дату . Предварительно собранный пакет -недоступен.
Чтобы установить драйвер kmod:
cd /usr/ports/net/intel-ixl-kmod/ && make install clean
Убедитесь, что /boot/loader.conf
выглядит так:
dev.ixl.1.iflib.override_qs_enable=1
dev.ixl.1.iflib.override_nrxqs=16
dev.ixl.1.iflib.override_ntxqs=16
if_ixl_updated_load="YES"
Перезагрузитесь и посмотрите результаты в dmesg и sysctl.
При использовании этого модульного драйвера вы также можете динамически устанавливать среду с помощью kenv
, как описано Джеффом Пипером . Выгрузите и загрузите драйвер, используя kldunload
и kldload
Я заметил, что у тебя:
hw.intr_storm_threshold: 1000
Но поскольку это всего лишь X710 для 10GbE, это, вероятно, не проблема. Согласно справочной странице ixl , вы можете увидеть штормы прерываний на 40GbE. Затем вы должны установить:
/etc/sysctl.conf:
hw.intr_storm_threshold=0
(отсюда интерес к этому параметру)
И, наконец, я заметил:
dev.ixl.1.fw_version: fw 5.0.40043 api 1.5 nvm 5.05 etid 80002927 oem 1.261.0
Этой прошивке больше двух лет. Существует версии 6.80 для Intel (R )Ethernet Controller X710
.Проще всего использовать sysutils/intel -nvmupdate . Его можно быстро установить в виде бинарного пакета (, не нужно собирать ).