Low fps in fq_codel queue
I'm trying to figure out what might be happening. I've setup fq_codel as a limiter in pfsense. It appears to be setup but the frames that the firewall can handle drops causing the queues to fill up and start dropping packets. Having the traffic shaper turned off gives me a lot more processing of packets.
Some things I've attempted to try and figure out what is going on is:
- Monitored the CPU utilization (per core) while running a speed test. Core 0 is barely being used throughout the speed test
- Disabling all additional plugins (snort, squid, etc)
- Attempt to tweak the queue sizes in the limiters (not ideal as the documentation says it can support a 10G connection and I only have a 400mbps)
- Attempted to change the speeds of the limiters to try and reduce the number of drops
I'm not really sure what might be going on or how to further debug this. I suspect it may have something to do with routing it into the dummynet and back out but I'm not clear on how to get statistics on that or if seeing a huge drop in the fps is expected. I understand it will drop packets when the queue fills up but it seems as if its not sending the packets fast enough causing the queue to fill up and thus causing lost packets. At a very low load this isn't that noticeable but when streaming to twitch.tv and identifying the packet loss is coming from a filled up queue is no fun. My upload speed is 40mbps and the bitrate for twitch is 6000kbps constant bitrate. The stats on the firewall never show a fully saturated upload pipe so it seems like something is reducing the throughput from the dummynet. Any assistance is greatly appreciated!
Version 2.5.2-RELEASE (amd64)
built on Fri Jul 02 15:33:00 EDT 2021
The system is on the latest version.
Version information updated at Sun Jul 25 18:44:59 EDT 2021
CPU Type Intel(R) Core(TM) i5-2500K CPU @ 3.30GHz
4 CPUs: 1 package(s) x 4 core(s)
AES-NI CPU Crypto: Yes (active)
QAT Crypto: No
Hardware crypto AES-CBC,AES-CCM,AES-GCM,AES-ICM,AES-XTS
Kernel PTI Enabled
MDS Mitigation Inactive