Kbase P26334: How to set the values for the startup parameters -Ma, -Mn and -n
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  5/20/2010 |
|
Status: Verified
GOAL:
How to set the values for the startup parameters -Ma, -Mn and -n
GOAL:
How to plan the Maximum Clients Per Server (-Ma)?
GOAL:
How to calculate the numbers of clients per server?
GOAL:
What is the recommended number of clients per server?
GOAL:
Tuning with -Mn, -Ma, -Mi and -n parameters
GOAL:
Example of how all the "-Mn", "-Ma", "-Mi" and "-n" are used with each other
FACT(s) (Environment):
Progress 8.x
Progress 9.x
OpenEdge 10.x
All Supported Operating Systems
FIX:
The parameters that impact the number of connection to a single database are:
"-n" Parameter: Sets the maximum numbers of connections to the database, that counts all, remote and local connections.
"-Mi" Parameter: Sets the minimum number of remote connections that should to be connected to a server process before broker spawns a new server if -Mn has not yet being reached.
"-Mn" Parameter: Sets the maximum number of servers that can be started.
(In Progress Explorer the above reference is the same as the Maximum servers within the Configuration properties)
"-Ma" Parameter: Sets the maximum number of remote connections that a server can have.
"-Mpb" Parameter: Sets the maximum number of servers that a particular broker can spawn.
(In Progress Explorer the above reference is the same as the number of servers in the servergroup properties)
When running, the database will increase the count of sessions (-n vlalue) for:
- each process connected to shared memory:
- 1 per remote server
- 1 per auxiliary process (page writer -- biw / apw -- and watchdog)
- 1 per self-service client
- 1 for the broker processes (1 for the main broker + 1 per additional broker)
- each remote client connected to a server.
To set -Ma, -Mn and -n startup parameters appropriately you must define:
1. The maximum number of concurrent remote users.
2. The maximum number of concurrent local users (self service clients).
3. Set -Ma as high as possible but lower than 11 (increasing above 10 clients per server may degrade performance, decreasing it under 5 will require more server processes creating unnecessary overhead).
The default value for -Ma is 5 and its maximum value is 2048, this value represents the maximum number of queued client processes. If the application requires long and heavy queries and you get performance degradation, you may need to decrease -Ma.
4.- Calculate -Mn (the number of required servers) by dividing the maximum remote users by the value of -Ma.
5.- The product value(-Ma) * value(-Mn) must be equal to the maximum number of remote users.
6.- The formula for -n is: value(-n) = (maximum # of remote users) + (maximum # of local users) + 2.
Where the value "2" in the formula above will be used by ProMon and ProShut utilities connect to the DB.
7.- Keep the following relation:
value(-Ma) * value (-Mn) < value(-n)
Example 1:
Remote users: 32
Local users: 15
Value(-Ma)=8 (this is the biggest multiple lower than 11)
Value(-Mn)=(Remote users)/Value(-Ma)= 32/8 = 4
Set -Mn 4, -Ma 8, -n 49
Example 2:
In this example assume that 40 users are needed and 8 extra connections are given for promon and other background processes like the Watchdog, the Asynchronous Page Writers, etc.
proserve sports2000 -S prosv00 -Mi 3 -Ma 4 -Mn 13 -n 60
The sports2000 should be replaced with the dbname, prosv00 replaced with the correct port number or service name for remote connections. When using multiple brokers, the count of servers (-Mn) can be split across brokers using -Mpb:
proserve sports2000 -S prosv00 -n 60 -Mn 13 -Mi 4 -Mpb 6
proserve sports2000 -m3 -S prosv01 -Mi 4 -Mpb 6
The "-Mpb" setting of 6 for each broker allows each port to spawn a maximum of 6 servers each. -Mn is set to the total number of remote servers that can be spawned [6 for the primary br.oker + 6 for the secondary broker + 1 for the secondary login broker since each secondary login is counted as a server = 13]..