Forum Discussion
Pool round-robin load balancing not balanced
I have a simple pool created with 4 Linux web servers in it. (running version 10.2.1) Two of the webservers are physical machines, and two are virtual.
I have selected round-robin as the load-balancing method, disabled priority group activation, and the ratios for each member in the group is set to 1, connection limit for each member is set to zero.
Whenever I look at the statistics, the physical servers are getting about 6 to 8 times the connections of the virtual machines.
The physical machines do have more memory then the virtual machines, but I've verified the virtual machines have plenty of free memory available, and the load average is roughly the same across all the servers.
So I have no idea why the Virtual Machines have such a low connection count as compared to the physical machines. I've checked the apache configs and made sure the number of servers, threads, etc are set to be the same across all machines.
Any clues or things I should check for to verify the round-robin is working as expected, or is this a bug or expected behavior?
Thanks,
21 Replies
- What_Lies_Bene1
Cirrostratus
Would anything in here apply? http://support.f5.com/kb/en-us/solutions/public/10000/400/sol10430.html
- Taylor77_133376
Nimbostratus
I've checked that documentation. The only iRule being applied is selectiveSNAT, which maps SNAT IPs. Straight Round robin for the pool.
The only thing that I see that could come into play is the selection of Type of Performance under the Virtual Server Properties. But the documentation doesn't indicate this will result in any preference being given to members based on response time.
- What_Lies_Bene1
Cirrostratus
OK. I assume you are getting enough connections to make the statistics valid. What statistics are you actually looking at? Are these borne out by similar stats on the servers?
- Joe_M
Nimbostratus
Could you post the VIP and Pool configuration from the bigip.conf file?
- Taylor77_133376
Nimbostratus
Ok, see below, pretty straightforward. I also tried changing the profile in the Virtual definition to Standard, made no difference..
pool pool_live.sample.com_40001 { monitor all slow_icmp members { 10.48.2.37:40001 {} 10.48.2.38:40001 {} 10.48.2.39:40001 {} 10.48.2.42:40001 {} } } pool pool_live.sample.com_http { monitor all slow_icmp members { 10.48.2.37:http {} 10.48.2.38:http {} 10.48.2.39:http {} 10.48.2.42:http {} } } virtual live.sample.com_http { pool pool_live.sample.com_http destination 10.48.254.79:http ip protocol tcp rules SelectiveSNAT profiles fastL4 {} } virtual live.sample.com_https { pool pool_live.sample.com_40001 destination 10.48.254.79:https ip protocol tcp rules SelectiveSNAT profiles fastL4 {} } - Joe_M
Nimbostratus
What platform is this running on? Also, when you say 6 to 8 times more, is it 6 to 1 or 600 to 100 or 6000 to 1000? I ask because if the stats are low and you are on a platform with 8 cores or so (like an 8900) then CMP could easily explain the difference. But if the statistics count is high, then I am not really sure.
- afedden_1985
Cirrus
Depending on your LTM CMP may be responsible. see SOL7751 Scenario 2: Virtual server with CMP enabled on a BIG-IP 8800
Four connections are made to the virtual server, unlike the first scenario where CMP was disabled, the BIG-IP distributes the connections across the multiple TMM processes. The BIG-IP 8800 with CMP enabled can use four TMM processes. Since each TMM handles load balancing independently of the other TMM processes, it is possible that all four connections are directed to the same pool member.
--Connection 1--> | | --Connection 1--> TMM0 --> 10.0.0.1:80 --Connection 2--> |-> BIG-IP Virtual Server ->| --Connection 2--> TMM1 --> 10.0.0.1:80 --Connection 3--> | | --Connection 3--> TMM2 --> 10.0.0.1:80 --Connection 4--> | | --Connection 4--> TMM3 --> 10.0.0.1:80
The CMP feature is designed to speed up connection handling by distributing connections across multiple TMM processes. While initially this behavior may appear to favor one or several servers, over time the load will be distributed equally across all servers.
- Taylor77_133376
Nimbostratus
What is CMP? - see the first reaction, final point Clustered Multip-Processing (CMP) can be a significant factor in how the BIG-IP system distributes connections across active TMM instances, which in turn can affect distribution to pool members. Note: For more information about the effects of CMP on traffic distribution, refer to SOL7751: Overview of Clustered Multi-Processing http://support.f5.com/kb/en-us/solutions/public/7000/700/sol7751.html
- afedden_1985
Cirrus
Well as it says in the SOL7751 http://support.f5.com/kb/en-us/solutions/public/7000/700/sol7751.html Your running version 10 so you are using CMP Clustered Multi-Processing
Clustered Multi-Processing (CMP) is a feature that was added in BIG-IP 9.4.0. CMP allows specific platforms with multiple processing cores to use multiple Traffic Management Microkernel (TMM) instances to increase traffic management capacity.
Clustered Multip-Processing (CMP) can be a significant factor in how the BIG-IP system distributes connections across active TMM instances, which in turn can affect distribution to pool members.
- Joe_M
Nimbostratus
Not necessarily. 1500's and 3400's do not run CMP on any version since they are single core systems.
- Taylor77_133376
Nimbostratus
Not sure of the exact model number, but I have a system with 2 CPUs, running 10.2.1...
- What_Lies_Bene1
Cirrostratus
'tmsh show sys hardware' should tell you all you/we need to know.
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com