Назад | Перейти на главную страницу

FreeBSD IRQ Affinity с использованием cpuset. Не использовать ли для параметра -l #IRQ шестнадцатеричные или десятичные числа?

Я только что запустил свой маршрутизатор FreeBSD 10.2-STABLE в производство, работающий с Quagga 0.99.24.1, скомпилированный через порты. После прохождения всего трафика на эту машину загрузка S.O. был очень высоким, и все указывает на то, что проблема в IRQ, как показано ниже:

45 processes:  2 running, 42 sleeping, 1 waiting
CPU 0:  0.4% user,  0.0% nice,  0.0% system, 47.5% interrupt, 52.2% idle
CPU 1:  1.2% user,  0.0% nice,  0.8% system, 43.1% interrupt, 54.9% idle
CPU 2:  0.0% user,  0.0% nice,  1.2% system, 49.8% interrupt, 49.0% idle
CPU 3:  0.0% user,  0.0% nice,  0.0% system, 51.4% interrupt, 48.6% idle
CPU 4:  0.8% user,  0.0% nice,  0.8% system, 40.0% interrupt, 58.4% idle
CPU 5:  0.0% user,  0.0% nice,  0.8% system, 49.4% interrupt, 49.8% idle
CPU 6:  0.8% user,  0.0% nice,  0.8% system, 44.7% interrupt, 53.7% idle
CPU 7:  1.6% user,  0.0% nice,  0.8% system, 43.1% interrupt, 54.5% idle
Mem: 170M Active, 1118M Inact, 1300M Wired, 1550M Buf, 13G Free
Swap: 2862M Total, 2862M Free

PID USERNAME    THR PRI NICE  SIZE    RES STATE  C  TIME    WCPU COMMAND
11 root          8 155 ki31    0K  128K RUN    7 4087.9 413.04% [idle]
12 root        65 -84    -    0K  1040K WAIT  255 318.8H 383.54% [intr]
1841 root          1  35    0  679M  616M select  3  18.7H  17.97% /usr/local/sbin/bgpd -d
14 root          1 -16    -    0K    16K -      3 465:17  0.88% [rand_harvestq]
1611 root          1  20    0  177M  121M select  2 162:32  0.88% /usr/local/sbin/snmpd -p /var/run/net_snmpd.pid -c /usr/local/etc/snmpd.conf

Я искал способы использовать IRQ Affinity и нашел процессор. В руководстве и примерах в Интернете параметры IRQ всегда передаются как десятичные. Когда я исследую свою систему с помощью devinfo, я просто вижу шестнадцатеричный адрес IRQ следующим образом:

igb4 pnpinfo vendor=0x8086 device=0x1f41 subvendor=0x8086 subdevice=0x1f41 class=0x020000 at slot=20 function=2 handle=\_SB_.PCI0.D010
Interrupt request lines:
0x11c
0x11d
0x11e
0x11f
0x120
0x121
0x122
0x123
0x124

Мой вопрос: могу ли я таким же образом использовать формат IRQ, например, десятичный или шестнадцатеричный:

Как это:

cpuset -l 0x11c -x 1

или

cpuset -l 284 -x 1

Неважно?

С уважением.

В поисках вопроса и использовании разных команд, например #vmstat -i вместо #devinfo -r -v, я обнаружил десятичное число IRQ. Таким образом, можно без опасений использовать #cpuset.

С уважением.