PDA

View Full Version : Constrain by Number of Servers


Dmitry@Rivermine
07-24-2008, 03:07 PM
Hi, I don't see a GUI option for the functionality described below which is found on this page - http://doc.3tera.com/AppLogic23/RefAppConfig.html
Am I missing something obvious?


Limit the number of servers - Constrain by Number of Servers

Specify the minimum and/or maximum number of servers you want to have for the application run on. If you want to specify only the minimum or the maximum, leave the other field empty.

ALERT! Since the actual servers and their resources are selected by AppLogic when you start the application, the editor cannot verify whether the specified amount of servers will be sufficient. If the specified maximum number of servers is insufficient to start the application, AppLogic will not start it (you may still be able to start the application in Sandbox mode).

PeterNic
07-24-2008, 05:22 PM
Dmitry -- sorry, looks like documentation erratum. It will be fixed. Since servers may vary in their amount of resources from grid to grid, specifying constraint by # of servers becomes meaningless; it was removed in 2.3 to make room for some additional capabilities coming in the near future.

Does that create a problem for you?

-- Peter

Dmitry@Rivermine
07-25-2008, 07:26 AM
Actually, what I'm trying to do is to ensure that all appliances are started on single server. I know that if I specify one server in the constraint list then the app will be started only on that server. But I think if I specify two servers comma separated then AppLogic could potentially break appliances up.

Maybe it's an enhancement request to have a checkbox that tells AppLogic to group all appliances of a single application on a single server, but not any server in particular. And the reason why this will work for us is because we configure out Apps with resources such that we have very little fragmentation of Memory and CPU. Meaning we allocate exactly a 1/8, or 1/4/ or 1/2 of a node to an application.

PeterNic
07-25-2008, 10:50 AM
Dmitry,

By default, AppLogic will try to schedule the appliances of an application as tightly as possible, maximizing the number of entirely empty servers. The intent is to reduce fragmentation, and leave as large as possible chunks of free resources. I think the default behavior of the system will more or less achieve exactly what you want.

Regards,
-- Peter

Dmitry@Rivermine
07-27-2008, 06:56 PM
Peter, the problem is that the system is not smart enough to recognize the situation where the entire application cannot be started on a single server.

In my example, I have specified a start order of 3 appliances inside my app. GW appliance starts first. Since GW usually has the minimum amount of resources allocated to it the scheduler will start it on a server. Second appliance is our business appliance with much more resources given to it. The scheduler is going to start this appliance on another server.

I would really find this enhancement helpful to me (start app on one server) right now.

PeterNic
07-30-2008, 06:48 PM
Dmitry,

Peter, the problem is that the system is not smart enough to recognize the situation where the entire application cannot be started on a single server.

In my example, I have specified a start order of 3 appliances inside my app. GW appliance starts first. Since GW usually has the minimum amount of resources allocated to it the scheduler will start it on a server. Second appliance is our business appliance with much more resources given to it. The scheduler is going to start this appliance on another server.


That's not quite the way it works -- the start order does not (and should not) affect the scheduling decision. In general, you want the input gateway to be started last, after the rest of the application is fully up and running -- this way it will get traffic sent to it only after all its bits are operational.

The scheduling is done in a way that maximizes the utilization of servers and minimizes fragmentation in the general case. You can use some of the application constraints and scheduler options to control the scheduling decision.

I would really find this enhancement helpful to me (start app on one server) right now.

Good news: while you cannot attach this constraint to the application in a persistent way (because of the reasons I stated in a prior post in this thread), you can direct the scheduler to fit the application within a fixed number of physical servers during the application start: see the servers= option of the app start (http://doc.3tera.com/AppLogic23/CliApplication.html#AnchorStart) command.

The following command will start the myapp application on a single server:

app start myapp servers=1


Let me know if this resolves the problem for you.

Best Regards,
-- Peter