Re: [FUG-BR] IRQ affinity com cpuset. Tanto faz hexa ou decimal no parâmetro -l #IRQ?
On Thursday, February 11, 2016 9:03 AM, Marcelo Gondim wrote: Em 11/02/2016 09:24, Kalil de Albuquerque Carvalho escreveu: > > > > > On Wednesday, February 10, 2016 5:52 PM, Marcelo Gondim > wrote: > Em 10/02/2016 16:16, Kalil de Albuquerque Carvalho escreveu: >> Boa tarde a todos. >> >> Acabo de colocar em produção um roteador rodando FreeBSD 10.2-STABLE com >> Quagga version 0.99.24.1, compilado via Ports. Após a ativação e passado >> todo o trafego para esta maquina a carga do processador esta no limite do >> suportado pelo hardware e tudo indica ser problema de IRQ como mostra abaixo: >> >> 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 USERNAMETHR PRI NICE SIZERES STATE C TIMEWCPU 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 350 679M 616M select 3 18.7H 17.97% >> /usr/local/sbin/bgpd -d >> 14 root 1 -16- 0K16K - 3 465:17 0.88% >> [rand_harvestq] >> 1611 root 1 200 177M 121M select 2 162:32 0.88% >> /usr/local/sbin/snmpd -p /var/run/net_snmpd.pid -c /usr/local/etc/snmpd.conf >> >> >> Estava pesquisando formas de usar IRQ affility e me deparei com o cpuset. No >> manual, e exemplos pela Internet, e sendo colocado a informação da IRQ que o >> FreeBSD gera coma decimal. Quando faço busca por qual IRQ as minhas >> interfaces estão usando somente encontro em hexa como mostrado abaixo: >> >> igb4 pnpinfo vendor=0x8086 device=0x1f41 subvendor=0x8086 subdevice=0x1f41 >> class=0x02 at slot=20 function=2 handle=\_SB_.PCI0.D010 >> Interrupt request lines: >> 0x11c >> 0x11d >> 0x11e >> 0x11f >> 0x120 >> 0x121 >> 0x122 >> 0x123 >> 0x124 >> >> A minha pergunta é: O comando tem o mesmo efeito rodando no formato hexa ou >> tenho que converter para decimal? >> >> Example: >> >> Tanto faz?: >> >> #cpuset -l 0x11c -x 1 >> ou >> #cpuset -l 284 -x 1 >> > Olá Kalil, > > Nessa área eu posso ajudar rsrsrs > > Primeiramente qual o tráfego que está passando? Olhando o que vc postou > seus cores tem bastante disponibilidade ainda. > Você está sofrendo com o cpuset sem necessidade para achar as > interrupções que as interfaces de rede estão usando use esse comando: > > # devinfo -r -v | less > > Aí procure a sua interface. Um exemplo abaixo que é a minha ix0: > > ix0 pnpinfo vendor=0x8086 device=0x10fb subvendor=0x8086 > subdevice=0x000c class=0x02 at slot=0 function=0 > handle=\_SB_.PCI0.BR12.S5F0 > Interrupt request lines: > 300 > 301 > 302 > 303 > 304 > 305 > 306 > 307 > 308 > > Nesse meu caso vou usar as interrupções de 300 à 308. O -l eu digo o > core e o -x a interrupção. Dependendo do tráfego tem que fazer o cpu > affinity com as interrupções das interfaces senão dá problema e dos > sérios com perdas de pacotes e tudo que tem direito. :) > > /usr/bin/cpuset -l 0 -x 300 > /usr/bin/cpuset -l 1 -x 301 > /usr/bin/cpuset -l 2 -x 302 > /usr/bin/cpuset -l 3 -x 303 > /usr/bin/cpuset -l 4 -x 304 > /usr/bin/cpuset -l 5 -x 305 > /usr/bin/cpuset -l 0 -x 306 > /usr/bin/cpuset -l 1 -x 307 > /usr/bin/cpuset -l 2 -x 308 > > Esse ai em cima é apenas um exemplo mas existem outros fatores que você > precisa levar em consideração como motherboard, slots PCIe, distribuição > do tráfego de entrada e saída. > > > []´s > Gondim > - > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd > > Bom dia Gondim. > > Muito obrigado pela orientação. Porem como sou novato no uso do FreeBSD estou > confuso quando a saia do top, achava que a interpretação era igual ao > GNU/Linux. Digo isso porque a carga esta, na media, em 9 enquanto temos > apenas oito núcleos. Analisando a saída do comando o que me preocupou foi a > informação "interrupt" o qual me levou a acreditar que tínhamos um problema > nas IRQ's. Você perguntou qual o nosso trafego, hoje gira em torno de > 1.1Gbps. Quanto
Re: [FUG-BR] IRQ affinity com cpuset. Tanto faz hexa ou decimal no parâmetro -l #IRQ?
Em 11/02/2016 09:24, Kalil de Albuquerque Carvalho escreveu: On Wednesday, February 10, 2016 5:52 PM, Marcelo Gondim wrote: Em 10/02/2016 16:16, Kalil de Albuquerque Carvalho escreveu: Boa tarde a todos. Acabo de colocar em produção um roteador rodando FreeBSD 10.2-STABLE com Quagga version 0.99.24.1, compilado via Ports. Após a ativação e passado todo o trafego para esta maquina a carga do processador esta no limite do suportado pelo hardware e tudo indica ser problema de IRQ como mostra abaixo: 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 USERNAMETHR PRI NICE SIZERES STATE C TIMEWCPU 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 350 679M 616M select 3 18.7H 17.97% /usr/local/sbin/bgpd -d 14 root 1 -16- 0K16K - 3 465:17 0.88% [rand_harvestq] 1611 root 1 200 177M 121M select 2 162:32 0.88% /usr/local/sbin/snmpd -p /var/run/net_snmpd.pid -c /usr/local/etc/snmpd.conf Estava pesquisando formas de usar IRQ affility e me deparei com o cpuset. No manual, e exemplos pela Internet, e sendo colocado a informação da IRQ que o FreeBSD gera coma decimal. Quando faço busca por qual IRQ as minhas interfaces estão usando somente encontro em hexa como mostrado abaixo: igb4 pnpinfo vendor=0x8086 device=0x1f41 subvendor=0x8086 subdevice=0x1f41 class=0x02 at slot=20 function=2 handle=\_SB_.PCI0.D010 Interrupt request lines: 0x11c 0x11d 0x11e 0x11f 0x120 0x121 0x122 0x123 0x124 A minha pergunta é: O comando tem o mesmo efeito rodando no formato hexa ou tenho que converter para decimal? Example: Tanto faz?: #cpuset -l 0x11c -x 1 ou #cpuset -l 284 -x 1 Olá Kalil, Nessa área eu posso ajudar rsrsrs Primeiramente qual o tráfego que está passando? Olhando o que vc postou seus cores tem bastante disponibilidade ainda. Você está sofrendo com o cpuset sem necessidade para achar as interrupções que as interfaces de rede estão usando use esse comando: # devinfo -r -v | less Aí procure a sua interface. Um exemplo abaixo que é a minha ix0: ix0 pnpinfo vendor=0x8086 device=0x10fb subvendor=0x8086 subdevice=0x000c class=0x02 at slot=0 function=0 handle=\_SB_.PCI0.BR12.S5F0 Interrupt request lines: 300 301 302 303 304 305 306 307 308 Nesse meu caso vou usar as interrupções de 300 à 308. O -l eu digo o core e o -x a interrupção. Dependendo do tráfego tem que fazer o cpu affinity com as interrupções das interfaces senão dá problema e dos sérios com perdas de pacotes e tudo que tem direito. :) /usr/bin/cpuset -l 0 -x 300 /usr/bin/cpuset -l 1 -x 301 /usr/bin/cpuset -l 2 -x 302 /usr/bin/cpuset -l 3 -x 303 /usr/bin/cpuset -l 4 -x 304 /usr/bin/cpuset -l 5 -x 305 /usr/bin/cpuset -l 0 -x 306 /usr/bin/cpuset -l 1 -x 307 /usr/bin/cpuset -l 2 -x 308 Esse ai em cima é apenas um exemplo mas existem outros fatores que você precisa levar em consideração como motherboard, slots PCIe, distribuição do tráfego de entrada e saída. []´s Gondim - Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd Bom dia Gondim. Muito obrigado pela orientação. Porem como sou novato no uso do FreeBSD estou confuso quando a saia do top, achava que a interpretação era igual ao GNU/Linux. Digo isso porque a carga esta, na media, em 9 enquanto temos apenas oito núcleos. Analisando a saída do comando o que me preocupou foi a informação "interrupt" o qual me levou a acreditar que tínhamos um problema nas IRQ's. Você perguntou qual o nosso trafego, hoje gira em torno de 1.1Gbps. Quanto ao comando #devinfo -r -v | less o que é apresentado o seguinte: igb4 pnpinfo vendor=0x8086 device=0x1f41 subvendor=0x8086 subdevice=0x1f41 class=0x02 at slot=20 function=2 handle=\_SB_.PCI0.D010 Interrupt request lines: 0x11c 0x11d 0x11e 0x11f 0x120 0x121 0x122 0x123 0x124 ainda em hexa. Posso seguir o seu exemplo e passar as interrupções de
Re: [FUG-BR] IRQ affinity com cpuset. Tanto faz hexa ou decimal no parâmetro -l #IRQ?
On Wednesday, February 10, 2016 5:52 PM, Marcelo Gondim wrote: Em 10/02/2016 16:16, Kalil de Albuquerque Carvalho escreveu: > Boa tarde a todos. > > Acabo de colocar em produção um roteador rodando FreeBSD 10.2-STABLE com > Quagga version 0.99.24.1, compilado via Ports. Após a ativação e passado todo > o trafego para esta maquina a carga do processador esta no limite do > suportado pelo hardware e tudo indica ser problema de IRQ como mostra abaixo: > > 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 USERNAMETHR PRI NICE SIZERES STATE C TIMEWCPU 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 350 679M 616M select 3 18.7H 17.97% > /usr/local/sbin/bgpd -d > 14 root 1 -16- 0K16K - 3 465:17 0.88% > [rand_harvestq] > 1611 root 1 200 177M 121M select 2 162:32 0.88% > /usr/local/sbin/snmpd -p /var/run/net_snmpd.pid -c /usr/local/etc/snmpd.conf > > > Estava pesquisando formas de usar IRQ affility e me deparei com o cpuset. No > manual, e exemplos pela Internet, e sendo colocado a informação da IRQ que o > FreeBSD gera coma decimal. Quando faço busca por qual IRQ as minhas > interfaces estão usando somente encontro em hexa como mostrado abaixo: > > igb4 pnpinfo vendor=0x8086 device=0x1f41 subvendor=0x8086 subdevice=0x1f41 > class=0x02 at slot=20 function=2 handle=\_SB_.PCI0.D010 > Interrupt request lines: > 0x11c > 0x11d > 0x11e > 0x11f > 0x120 > 0x121 > 0x122 > 0x123 > 0x124 > > A minha pergunta é: O comando tem o mesmo efeito rodando no formato hexa ou > tenho que converter para decimal? > > Example: > > Tanto faz?: > > #cpuset -l 0x11c -x 1 > ou > #cpuset -l 284 -x 1 > Olá Kalil, Nessa área eu posso ajudar rsrsrs Primeiramente qual o tráfego que está passando? Olhando o que vc postou seus cores tem bastante disponibilidade ainda. Você está sofrendo com o cpuset sem necessidade para achar as interrupções que as interfaces de rede estão usando use esse comando: # devinfo -r -v | less Aí procure a sua interface. Um exemplo abaixo que é a minha ix0: ix0 pnpinfo vendor=0x8086 device=0x10fb subvendor=0x8086 subdevice=0x000c class=0x02 at slot=0 function=0 handle=\_SB_.PCI0.BR12.S5F0 Interrupt request lines: 300 301 302 303 304 305 306 307 308 Nesse meu caso vou usar as interrupções de 300 à 308. O -l eu digo o core e o -x a interrupção. Dependendo do tráfego tem que fazer o cpu affinity com as interrupções das interfaces senão dá problema e dos sérios com perdas de pacotes e tudo que tem direito. :) /usr/bin/cpuset -l 0 -x 300 /usr/bin/cpuset -l 1 -x 301 /usr/bin/cpuset -l 2 -x 302 /usr/bin/cpuset -l 3 -x 303 /usr/bin/cpuset -l 4 -x 304 /usr/bin/cpuset -l 5 -x 305 /usr/bin/cpuset -l 0 -x 306 /usr/bin/cpuset -l 1 -x 307 /usr/bin/cpuset -l 2 -x 308 Esse ai em cima é apenas um exemplo mas existem outros fatores que você precisa levar em consideração como motherboard, slots PCIe, distribuição do tráfego de entrada e saída. []´s Gondim - Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd Bom dia Gondim. Muito obrigado pela orientação. Porem como sou novato no uso do FreeBSD estou confuso quando a saia do top, achava que a interpretação era igual ao GNU/Linux. Digo isso porque a carga esta, na media, em 9 enquanto temos apenas oito núcleos. Analisando a saída do comando o que me preocupou foi a informação "interrupt" o qual me levou a acreditar que tínhamos um problema nas IRQ's. Você perguntou qual o nosso trafego, hoje gira em torno de 1.1Gbps. Quanto ao comando #devinfo -r -v | less o que é apresentado o seguinte: igb4 pnpinfo vendor=0x8086 device=0x1f41 subvendor=0x8086 subdevice=0x1f41 class=0x02 at slot=20 function=2 handle=\_SB_.PCI0.D010 Interrupt request lines: 0x11c 0x11d 0x11e 0x11f 0x120 0x121 0x122 0x123 0x124 ainda em hexa. Posso seguir