finding optimal ipfw strategy

Andrey V. Elsukov bu7cher at yandex.ru
Tue Aug 27 18:06:30 UTC 2019


On 26.08.2019 19:25, Victor Gamov wrote:
> More general question about my current config.  I have about 200Mbit
> input multicasts which bridged and filtered later (about 380 Mbit
> bridged if trafshow does not lie me :-) )
> 
> My FreeBSD box (12.0-STABLE r348449 GENERIC  amd64)  has one "Intel(R)
> Xeon(R) CPU E31270 @ 3.40GHz"  and 4-ports  "Intel(R) PRO/1000
> PCI-Express Network Driver".  HT disabled and traffic mainly income via
> igb0 and out both via igb0 and igb2.  About 30 VLANs now active some at
> igb0 and some at igb2.
> 
> 
> And I have following `top` stat:
> =====
> CPU 0:  0.0% user,  0.0% nice, 80.5% system,  0.0% interrupt, 19.5% idle
> CPU 1:  0.0% user,  0.0% nice, 34.1% system,  0.0% interrupt, 65.9% idle
> CPU 2:  0.0% user,  0.0% nice, 17.1% system,  0.0% interrupt, 82.9% idle
> CPU 3:  0.0% user,  0.0% nice, 46.3% system,  0.0% interrupt, 53.7% idle
> =====

This doesn't look like heavy ipfw load.
E.g. this is top output from slightly loaded firewall (300Mbytes/s
~500kpps):

last pid: 58184;  load averages:  9.07,  8.98,  8.83
                                                                      up
72+07:45:55  21:01:36
821 processes: 36 running, 680 sleeping, 105 waiting
CPU 0:   0.0% user,  0.0% nice,  0.0% system, 28.1% interrupt, 71.9% idle
CPU 1:   0.0% user,  0.0% nice,  0.0% system, 33.6% interrupt, 66.4% idle
CPU 2:   0.0% user,  0.0% nice,  0.0% system, 28.9% interrupt, 71.1% idle
CPU 3:   0.0% user,  0.0% nice,  0.0% system, 27.3% interrupt, 72.7% idle
CPU 4:   0.0% user,  0.0% nice,  0.0% system, 21.1% interrupt, 78.9% idle
CPU 5:   0.0% user,  0.0% nice,  0.0% system, 26.6% interrupt, 73.4% idle
CPU 6:   0.0% user,  0.0% nice,  0.0% system, 28.1% interrupt, 71.9% idle
CPU 7:   0.0% user,  0.0% nice,  0.0% system, 21.1% interrupt, 78.9% idle
CPU 8:   0.0% user,  0.0% nice,  0.0% system, 35.2% interrupt, 64.8% idle
CPU 9:   0.0% user,  0.0% nice,  0.0% system, 29.7% interrupt, 70.3% idle
CPU 10:  0.0% user,  0.0% nice,  0.0% system, 27.3% interrupt, 72.7% idle
CPU 11:  0.0% user,  0.0% nice,  0.0% system, 19.5% interrupt, 80.5% idle
CPU 12:  0.0% user,  0.0% nice,  0.0% system, 32.8% interrupt, 67.2% idle
CPU 13:  0.0% user,  0.0% nice,  0.0% system, 34.4% interrupt, 65.6% idle
CPU 14:  0.0% user,  0.0% nice,  0.0% system, 29.7% interrupt, 70.3% idle
CPU 15:  0.0% user,  0.0% nice,  0.0% system, 26.6% interrupt, 73.4% idle
CPU 16:  0.0% user,  0.0% nice,  0.0% system, 28.9% interrupt, 71.1% idle
CPU 17:  0.0% user,  0.0% nice,  0.0% system, 34.4% interrupt, 65.6% idle
CPU 18:  0.0% user,  0.0% nice,  0.0% system, 36.7% interrupt, 63.3% idle
CPU 19:  0.0% user,  0.0% nice,  0.0% system, 21.9% interrupt, 78.1% idle
CPU 20:  0.0% user,  0.0% nice,  0.0% system, 21.1% interrupt, 78.9% idle
CPU 21:  0.0% user,  0.0% nice,  0.0% system, 32.0% interrupt, 68.0% idle
CPU 22:  0.0% user,  0.0% nice,  0.0% system, 33.6% interrupt, 66.4% idle
CPU 23:  0.0% user,  0.0% nice,  0.0% system, 26.6% interrupt, 73.4% idle
CPU 24:  0.0% user,  0.0% nice,  0.0% system, 21.9% interrupt, 78.1% idle
CPU 25:  0.0% user,  0.0% nice,  0.0% system, 21.1% interrupt, 78.9% idle
CPU 26:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
CPU 27:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle

# pmcstat -S instructions -Tw1
PMC: [INSTR_RETIRED_ANY] Samples: 443074 (100.0%) , 0 unresolved
Key: q => exiting...
%SAMP IMAGE      FUNCTION             CALLERS
 39.2 kernel     sched_idletd         fork_exit
 10.9 ipfw.ko    ipfw_chk             ipfw_check_packet
  3.6 kernel     cpu_search_lowest    cpu_search_lowest
  2.8 kernel     lock_delay           _mtx_lock_spin_cookie
  2.5 kernel     _rm_rlock            in6_localip:1.3 pfil_run_hooks:0.6
  2.2 kernel     rn_match             ta_lookup_radix:1.5
fib6_lookup_nh_basic:0.6

As you can see, when ipfw produces high load, interrupt column is more
than system.


-- 
WBR, Andrey V. Elsukov

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 554 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-net/attachments/20190827/418e3242/attachment.sig>


More information about the freebsd-net mailing list