Page tree

This topic provides general recommendations for sizing Application Servers defined as type Configuration. The term configuration server refers to Application Servers of type Configuration.

Estimating client connections

Configuration servers handle user interface (UI) connections. The sizing settings for configuration servers should be based on the anticipated number of client connections to the server, which is the total of the number of client connections expected from UI clients (RCP) and from BLCLI clients.

The number of client connections opened by a UI client varies over time and depends on the operations in which the user is engaged at any given moment. As an initial estimate, BMC recommends a planning figure of 2.5 client connections for each concurrent UI user.

The BLCLI client uses exactly one client connection for its execution, and it is usually more short-lived than an interactive user UI session. Thus, the peak demand estimate for client connections for a configuration server is:

2.5 × (number of simultaneous UI users) + (number of simultaneous BLCLI commands)

If you establish multiple configuration servers with a load balancer, you can divide the total load for client connections across the number of configuration servers that you establish.

For example, if you want to scale to 150 to 220 concurrent users and allocate 50 connections for BLCLI commands, set MaxClientContexts to 600 (220 × 2.5 + 50). If you have two load balanced configuration servers, you can distribute the 600 client contexts between the two servers (300 each).

Client connection service and thread pool settings

The client connection service is responsible for managing connections from client processes in configuration servers. The client connection service maintains a pool of threads for servicing client requests.

The following table describes the parameters that most strongly affect the performance of the client connection service. In most cases, you do not need to change these parameters from their default values.

Component

Parameter

Description and recommended value

AppServer

MaxClientContexts

Number of maximum client connections to the Application Server

BMC recommends estimating peak client connection demand, as described in the preceding section, and setting MaxClientContexts to this value. In the absence of sufficient information about peak client connection demand, BMC recommends using the default value of 200.

AppServer

MaxWorkerThreads

Number of client connection worker threads

BMC recommends using the default value of 10, or approximately 5 percent of the value of MaxClientContexts.

AppServerMaxHeapSize

Maximum heap size for this Application Server.

Recommended values:

  • For 32-bit systems:
    • Microsoft Windows: 1024 MB
    • Linux: 1536 MB
    • Oracle Solaris: 2048 MB
  • For 64-bit systems:
    • Windows: 6144 MB
    • Linux: 6144 MB
    • Solaris: Not applicable

AppServer

MaxJMXConnections

These connections are used for communication between Application Servers. In environments with many Application Server instances, this setting may need to be increased from the default of 20.

AppServer

MinPort,MaxPort

These settings specify a range of available ports used for communication between Application Servers. The default range provides for 50 ports (BasePort+50-BasePort+9899) which is sufficient for most environments.

Database connection settings

For best configuration server (and UI) performance, BMC recommends allowing the pool of database connections for client service threads to grow up to twice the number of client connection service threads, as described in the following table:

Component

Parameter

Description and recommended value

Database

MaxClientConnections

Maximum connections in the pool for client connections

BMC recommends a value that is twice the number of client connection threads (set using MaxWorkerThreads in the AppServer component).

Database

MinClientConnectionsControls the minimum number of database connections created on startup for the Client Connection pool. Because connections are created on demand, this has no impact on performance. The default is 0.
DatabaseMaxGeneralConnections

Maximum connections in the pool for the general thread group.

  • In BMC Server Automation versions 8.1 and later, the default setting for this parameter should be sufficient.
  • In BMC Server Automation versions 8.0 and earlier, this connection pool is used by NSH script jobs to log output. In those versions,  BMC recommends a value of 2 × MaxWorkItemThreads, especially for environments that depend heavily on NSH script jobs.

Database

MinGeneralConnections

Controls the minimum number of database connections created on startup for the General Connection pool. Because connections are created on demand, this has no impact on performance.

Database

MaxIdleTime

Maximum idle time, in seconds, for database connections. The Application Server closes database connections that are idle longer than the specified timeout. If there is a network device between the Application Server and database with a lower idle timeout, then this setting should be adjusted. The default is 600 seconds (10 minutes).

Database

MinTimeToLog

Controls logging of long running database queries. Leave at 0 to disable this functionality.

Database

FetchSize

Number of rows fetched simultaneously from the database. The default is 100 rows.

Database

IdleConnectionTestPeriod

Number of seconds that connections are idle before being tested. The default is 600 seconds (10 minutes).

Load balancer environments

When a load balancer is used to share the load across multiple configuration servers, the following adjustments to the configuration server's parameter settings are recommended. For more information, see Considerations for load balancing.

Component

Parameter

Description and recommended value

AppServer

ValidateRequestURL

If set to true, the Application Server verifies that its own address appears in the list of request URLs encoded in the session credential.

For Application Servers in a load balancer environment or otherwise using an alternate URL besides the appserver hostname, take into account the type of traffic that you are load balancing:

  • If you are load balancing only authentication traffic (that is, connections to the AuthServiceURL), but are not load balancing traffic to the configuration server (that is, to the AppServiceURL) or not using a custom AppServiceURL, set this parameter to true.
  • If you are load balancing all traffic — to both the AuthServiceURL and the AppServiceURL — or setting a AppServiceURL that is different from the hostname of the appserver, set this parameter to false, as the client sends its request to the load balancer, and not to the configuration server that receives the connection request.

AppServer

ValidateClientIpAddress

Whether to enable (a value of true) or disable (a value of false) client network address validation.

In a load balancer environment, use the following guidelines to set the value for this parameter:

  • If you are load balancing only authentication traffic (that is, connections to the AuthServiceURL), but are not load balancing traffic to the configuration server (that is, to the AppServiceURL), then check whether the load balancer was configured to pass through the client IP address:
    • If the load balancer was configured to pass through the client IP address, set this parameter to true.
    • If the load balancer was not configured to pass through the client IP address, then from the point of view of the Authentication Server, the client's IP address is that of the load balancer (that is, client connections appear to originate from the load balancer rather than from the actual client). Therefore, set this parameter to false.
  • If you are load balancing all traffic — to both the AuthServiceURL and the AppServiceURL— set this parameter to true, regardless of whether the load balancer was configured to pass through the client IP address.

AuthServer

AppServiceURLs

Application service URLs distributed in the session credentials issued by the Authentication Service

Set this parameter to contain the URL for the client's view of the load balancer. Otherwise, the client attempts to contact one of the configuration servers directly, bypassing the load balancer.