03 Pools, Nodes and Load Balancing

A pool is the group of servers behind a virtual server, and the load balancing method decides which of them gets each new connection. This note covers nodes vs pool members, every load balancing method you need for the exam and for real designs, Priority Group Activation and the fallback host.

Node vs pool member

ObjectRepresentsExample
NodeThe server’s IP — the whole server192.168.52.11
Pool memberIP + port inside a pool — one service on that server192.168.52.11:80
PoolGroup of members serving the same applicationpool_app1_80
  • One node can be a member of several pools (e.g. :443 in an HTTPS pool and :22 in an SFTP pool).
  • Nodes are the parent of members: disabling or marking down a node takes down every member that uses it, in every pool.
  • The only required field to create a pool is its name. A pool’s configuration includes the load balancing method, health monitors, members, PGA, slow ramp and action on service down.
  • Where things live: load balancing method → pool, persistence → virtual server.

Member vs node load balancing

Almost every dynamic method exists in two flavors:

  • (member) — counts only that member’s connections in this pool.
  • (node) — counts all connections to the server across every pool it belongs to.
ABC
HTTPS-Pool403035
SFTP-Pool5205
Total455040

A new HTTPS connection → Least Connections (member) picks B (30 in this pool). Least Connections (node) picks C (40 in total).

Static methods (ignore real server load)

  • Round Robin — one connection to each member in turn (A, B, C, A…). Default method. Best when servers are equal.
  • Ratio — each member has a weight; connections are distributed proportionally in cycles. A=3, B=2, C=1 → of every 6 connections, A gets 3, B 2, C 1.
    • Default ratio is 1 for everyone, so an untouched Ratio pool behaves like Round Robin.
    • The method is selected on the pool; the weight is set on each member (Ratio member) or each node (Ratio node). If you choose Ratio (node) and put weights on members, they’re ignored.

Ratio is proportional, not sequential

The server with the highest ratio does not get connections until it’s “full”. Every member receives traffic at the same time, in proportion to its weight.

Dynamic methods (look at real server state)

MethodDecision based onBest for
Least ConnectionsFewest active connectionsServers of similar capacity, long-lived connections
Weighted Least ConnectionsLowest % of the connection limit configured on each member/nodeDifferent capacities, with limits configured (required)
FastestFewest outstanding L7 requests (quickest responder)Members on different networks / locations
ObservedDynamic ratio from L4 connection counts, recalculated continuouslyServers with very different capabilities, no persistence
PredictiveLike Observed, but favors members whose performance is improvingSame as Observed, more aggressive
Least SessionsFewest persistence recordsApplications using persistence (requires a persistence profile that tracks sessions)
Dynamic RatioRatio from real server metrics (SNMP/WMI agents)When you can collect CPU/memory from servers
Ratio Least ConnectionsCombination of ratio and active connectionsMixed capacities

Fastest = fastest responder

With servers answering in 5 ms, 5 ms and 2 ms, Fastest prefers the one answering in 2 ms.

Choosing a method

SituationMethod
Identical serversRound Robin
Known, different capacitiesRatio
Old + new servers, no persistenceObserved (or Predictive)
Members in different networksFastest
Application uses persistenceLeast Sessions
Connection limits set per memberWeighted Least Connections

Priority Group Activation (PGA)

  • Redundancy inside the same pool — not a separate backup pool.
  • Each member gets a priority group number. Higher number = higher priority.
  • Only the highest group receives traffic; lower groups stay on standby.
  • Pool setting Priority Group Activation: Less than N Available Member(s) — when the available members of the active group drop below N, the next group is activated as well. When they recover, traffic goes back to the high group.
  • N is a threshold, not “how many servers may be active”.
  • PGA depends on health monitors — without a monitor BIG-IP never sees a member go down.
  • Works with any load balancing method.

PGA scenario

A and B in group 20, C and D in group 10, PGA “Less than 2”.

  • Everything up → only A and B get traffic (2 available is not “less than 2”).
  • A fails → group 20 has 1 available (< 2) → B, C and D get traffic.

Fallback host

  • Used when no member of the pool is available.
  • It’s an HTTP redirect (302) to another URL — a maintenance page, a DR site, a cloud copy. It doesn’t load balance and isn’t a pool member.
  • Configured in the HTTP profile of the virtual server (HTTP only), not in the pool.
  • The value is a full URL, e.g. http://10.1.20.50/.
  • Don’t edit the default http profile: create a child profile with http as parent.

PGA vs fallback host

PGA activates backup servers inside the pool. The fallback host acts when the whole pool is down and sends the client somewhere else.

Other pool settings worth knowing

SettingWhat it does
Slow Ramp TimeA member that just came up receives traffic gradually instead of a flood
Action On Service DownWhat happens to existing connections when a member goes down: None, Reset, Reselect, Drop
Availability RequirementWith several monitors: All must pass, or At least N
Connection Limit (member/node)Max concurrent connections; used by Weighted Least Connections

Self-check

Q1 — True or false: member load balancing considers all of a host's connections across all pools.

Q2 — Which ratio value receives the most connections?

Q3 — Where are ratio weights configured?

Q4 — Which method should you use when pool members are in different networks?

Q5 — Two old servers and one new high-end server, no persistence. Which method gives the best user experience?

Q6 — Which method relies on persistence?

Q7 — You want standby servers used when fewer than 3 are active in the high group. What PGA value?

Q8 — When does the fallback host activate, and where is it configured?