Where is load balancing done?



  • Is it possible to change the load balancing algorithm used by pfSense, to take account of link usage?

    Is the load balancing within the pfSense source code, or is it an external BSD module? If the latter, which one?

    I'm thinking of a fairly simple algorithm.

    It must be possible to determine how much data is coming into and going out from each network card (for there are utilities which draw pretty graphs of same).

    All you would need to do is to find out how much data had come through the port in the last 2 seconds (say), and then choose the one with the lowest number.

    Or, better, have a ceiling for each port, so you can work out the spare capacity, and use that instead (which allows for ports with different speeds).


  • Rebel Alliance Developer Netgate

    The load balancing is done in pf, and it has to happen so fast that there is not enough time to take any of that into consideration. It may work on slow connections but it likely wouldn't scale well.

    Ideas like that are easy to dream up, but much harder to actually implement. :-)


Locked