Personal Experience With Polling

  • Hi Everyone,

    I wanted to share an experience that I had with a network application and the "Use device polling" option on my pfSense install.

    When I was first digging into pfSense, it wasn't clear to me whether I should enable polling on my hardware.  Lot's of posts on the subject ended with "it depends on your situation."  From the GUI description, it seemed like I could maybe reduce the CPU utilization by enabling it.  So I tried it out.  I'm running a Celeron M 1.3 Ghz processor with 512 MB of RAM and 4 Intel Pro/1000 MT NICs on a 33Mhz PCI bus.

    After replacing our Solaris/ipf firewall with pfSense there was a problem.  The client side of the application in question, which makes an obscene amount of mysql requests (50,000) just to log into the server application, experienced an increase in load time (counting from the start of the application to the "Log In" prompt) of about 3 minutes to 10 minutes.  The server for the application in question is on a different subnet than the client, mediated by the firewall and its rules.

    With polling /enabled/ a response occurred .02 seconds after a request was made (as measured by ethereal running on the client machine).  With polling /disabled/ the time dropped to about .001 seconds, and the application returned to it's previous, ahem, snappy performance.

    I hope this helps someone else decide whether to click on the rather innocent looking polling check box!


  • It also helps to crank up kern.hz="1000" or kern.hz="2000" in /boot/loader.conf when using polling.  It requires a reboot to take affect.

  • Based on recent findings, I would only recommend enabling polling if you're concerned about your management interfaces (console, webGUI, SSH, etc.) being unresponsive while under extreme load ("extreme" varying depending on your hardware). Even cranking up the hz, polling is significantly slower than running without.