Packet loss with traffic shaper and routing

tpeixoto at widesoft.com.br tpeixoto at widesoft.com.br
Thu May 4 01:40:10 UTC 2006


Very good. You're right!
I inserted a rule to match all non-layer2 packets on the top of the 
ruleset and interrupts dropped 10~20% immediately.
Given that, I went to apply Julian's idea of grouping 'in' and 'out' 
pipe rules to reduce the searching on the firewall and that gave me a 
little bit more of performance.
As interrupts were still hitting 60% mark, I did some more experiences:

Test 1: I changed all 'pipe' rules to 'allow' rules, so all packets were 
allowed and no shaping was done. The pipes were still there, but there 
were no rules pointing packets to them.
Result: No difference. Interrupts are the same as before.
Conclusion: It's not the shaping itself that slows the system.

Test 2: With the same ruleset of test 1, I just removed all pipes (ipfw 
pipe flush).
Result: Interrupts were only 20%!
Conclusion: Lots of pipes bother the system. I didn't figure out why, 
but it's not a coincidence. I tested several times to make sure.

Test 3: I applied Michael's idea of using 'mask src-ip' and 'mask 
dst-ip' in the pipes to use them as a template for dynamic generated pipes.
Result: Worked like a charm. Now I have only 18 pipes instead of 3200. 
Interrupts are ~30%.
Conclusion: The reduced number of pipes generated less system interrupts.

The only problem I noticed (so far) with this method is that if we have 
more than 1 IP address to a single MAC address, each IP will be shaped 
individually instead of share the same speed of the other(s) IP(s) with 
the same MAC.

Anyway, I am very curious about the result of test 2. Why do the pipes 
have influence on system performance if there is nothing passing through 
them?

Thank you very much everyone.


"."@babolo.ru wrote:
[...]
> In your example each packet walk through the rule set 4 times
>  1 mac input - abount half a ruleset average
>  2 ip input - all ruleset, not succesfull
>  3 ip output - all ruleset, not succesfull
>  4 mac output - abount half a ruleset average
> 
> allow all ip level packets on the ruleset begin and
> down proc usage 3 times down.
> 
[...]


More information about the freebsd-net mailing list