Lately, my users have been complaining about inconsistent ping times. I verified today that they are right. From the WAN interface of the machine, I can ping a host and get a decent response:
64 bytes from 66.70.150.19: icmp_seq=0 ttl=50 time=20.554 ms
64 bytes from 66.70.150.19: icmp_seq=1 ttl=50 time=17.849 ms
64 bytes from 66.70.150.19: icmp_seq=2 ttl=50 time=18.575 msFrom a machine behind the NAT, the results are not so great:
64 bytes from broomeman.com (66.70.150.19): icmp_seq=2996 ttl=48 time=371 ms
64 bytes from broomeman.com (66.70.150.19): icmp_seq=2997 ttl=48 time=610 ms
64 bytes from broomeman.com (66.70.150.19): icmp_seq=2998 ttl=48 time=254 ms
64 bytes from broomeman.com (66.70.150.19): icmp_seq=2999 ttl=48 time=256 msA reset of the state table drops them back into fairly normal ranges:
64 bytes from broomeman.com (66.70.150.19): icmp_seq=3151 ttl=48 time=53.5 ms
64 bytes from broomeman.com (66.70.150.19): icmp_seq=3152 ttl=48 time=23.6 ms
64 bytes from broomeman.com (66.70.150.19): icmp_seq=3153 ttl=48 time=69.9 msAt first I thought maybe my state table was too small, so I increased to 50K, from 10K. I also set the table expiry to "aggressive". While this helped a little bit, every 30-45 seconds, I will all the sudden get 10-15 packets of high ping times ~500ms.
Are my rules too complex? Is there anything else I can do to tune this box into better performance?
This is a known bug in pfSense. ICMP packets go for some reason to default queue and it seems your default queue is saturated.
There has been many threads earlier here also.
BR,
Tommi