Hello Ben, On Fri, Jul 23, 2010 at 03:21:03PM -0700, Ben wrote: > Hello -- > > I've searched for this on the mailing list but I haven't found an > answer, hope someone can help! > > I have a setup like > > 5 machines (m1,..,m5) > 2 services (s1, s2) > > Each machine has one or both of the services, each instance of each > service is identical. I want to present each service as a single > entity, but I'd also like to limit the maximum number of connections > to the machines. The obvious way to do it would be to set up two > backends in the configuration, one which points to all the machines > which have s1, the other to the machines with s2. But there will be > some overlap in the machines, so the machines might get overloaded > with connections (if I keep the maxconn parameter the same in each > backend) or else be underutilized (if i split the connections between > the backends, and only one service is being requested.) > > For concreteness suppose my setup is > > m1, m2, m3 have s1 > m2, m3, m4, m5 have s2 > (so m2,m3 have both services.) > > Is it possible to have server (with maxconn) shared between backends?
No, this is something which is planned for version 1.6 but which *may* finally get into 1.5 if it happens to be easier than initially thought. Your example is interesting BTW, because your backends are heterogenous, so it proves that the association must clearly be between individual servers. > Or is there another way to accomplish my goal? Not really. When backends are similar, it's quite common that people use a same backend for both services, assuming there's little or no risk of losing one service without the other one. If yours are different, then I would still suggest to have two backends with half of the maxconn in each (or slightly higher if you know that both services are not really saturated at the same time). While this can be perceived as having underutilized servers, it's not true in practice, because the maxconn you set indicates the limit the server cannot handle. It does not mean the server cannot be full far below. For instance, I know some people who set their apache to a very low maxconn of 30, because it's the level they observe the best performance for their app. But the servers are configured with MaxClients 256, so you can fully use them with any value between 30 and 256. That means that one backend at 30 will be able to saturate them, and two backends at 30 too, without risking stability. In fact, the only case where this is not really possible is with mongrel which has a maxconn of 1 that you can't split ! Best regards, Willy

