> The problem with this policy is that it generates quite a bit of network
> traffic between load balancer and the servers and therefore doesn't
> perform well on highly loaded large systems.
With the simulaton cluster I was trying feedbackd on (4 servers, 1 director),
a health report once every 2 seconds was sufficient to prevent the 'herd
effect'. With eight or less services being monitored on each server, the
control packets are 52 bytes each, and require an equal sized ack - so will
fit into an ethernet frame easily (52 byte packet + 20 byte IP header + 20
byte TCP header < 1500 byte MTU). Assuming that the first NECP ack will
include the TCP ack, we're transmitting three distinct frames over the
physical layer every two seconds (two necp packets, plus the tcp ack for the
second).
Given Joseph Mack's ~8000 frames per second figure for 100Mbps ethernet, each
NECP session will use 1.5/8000 of the medium - 0.02% of available bandwidth
per server.
Granted, 4 servers isn't a huge cluster, but compared to the network load of
the service provision, the load from monitor processes isn't large at all. I
think the bigger concern is the resource load on the director from the master
process handling load updates.
Jeremy
|