Question

I have 3 servers on a NLB cluster and deployed a stateless heavy-running WCF service to stress the cluster.

Configuration is: Port 80, Multicast, Affinity : None

Then I shoot 32 requests PARALELLY from my workstation to the cluster, the total amount of time to complete 32 requests is about 35 seconds.

I tried to turn 2 servers off, run the service again and the final result is also about ... 35 seconds !!!?!?!?

When looking at Task Manager on those 3 servers at the same time, I recognized that the requests were processed sequentially, if 1 server is processing a request, the other 2 become idle. I though that the requests should be process paralelly on all 3 servers.

I cannot figure out what happened. Did I configure them wrong ? Anyone have explanation for this ?

Was it helpful?

Solution 2

Finally, I found the answer myself.

NLB cluster decides the host for serving request base on client's IP, at a time there is only 1 server assgined to serve all the request from 1 client'IP.

All my requests were sent in parallel but with only 1 IP; therefore, only 1 server is assigned to serve all these requests.

When trying to send requests from 2 or 3 clients, I see that the other servers begin working parallely.

That is just the way NLB work.

OTHER TIPS

According to the NLB documentation:

If your Affinity is set to Single or Class C, the request from a single IP should be routed to a single host in the cluster. But if you have Affinity set to None, it should route the request to all the hosts.

In reality, I see the same problem you are seeing. We have multiple servers in a cluster, with affinity set to None, all requests from a single IP still get routed to save host. I am still looking for answers.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top