Intelligent Management: application placement custom properties
Custom properties modify the application placement controller configuration. We can use these settings to tune the application placement controller behavior beyond the settings that are in the console.
To set the application placement custom properties, expand Operational policies > Autonomic controllers > Autonomic managers > Autonomic request flow manager.
APC.predictor
By setting the APC.predictor custom property to a value of CPU, the application placement controller extends the dynamic cluster management to additional topologies.
By default, the application placement controller automatically controls dynamic clusters for the following topologies:
- Dynamic clusters of web containers to which requests are routed through an on demand router
- Dynamic clusters of EJB
- Dynamic clusters of message-driven beans (MDB) with the WebSphere Service Integration Bus
When the APC.predictor custom property is set to CPU, the following additional topologies are supported:
- Dynamic clusters of web containers to which requests are routed using the web server plug-in, when Intelligent Management is enabled.
- Dynamic clusters of MDBs with WebSphere MQ
- Dynamic cluster of on demand routers
Value Description Scope Cell Valid value CPU When the APC.predictor custom property is set to CPU, the application placement controller starts and stops application servers, and adds and removes nodes, based on the average CPU usage of all currently running cluster members. When the average CPU usage exceeds the Maximum CPU usage setting of CPU overload protection, and if the maximum number of application servers is not already started, an application server is started where CPU is available. When the elasticity mode is enabled, an add operation is required, if no CPU is available. When the elasticity mode is enabled, and the average CPU usage is low so that a WebSphere node is no longer needed, all application servers on the node are stopped, and a remove operation is performed.
Note: The custom property APC.predictor must be set to use APC when node-based ARFM is enabled.
(WAS v8.5.0.1) APC.XD.failedServerTimePeriod
Use this custom property to adjust the application placement controller waiting time before removing a server from the list of server start failures.
When a server fails to start, the application placement controller records the server on the list of server start failures. The server is removed from the set of available servers. The application placement controller does not attempt to start the server as long as it appears on the list of server start failures. After a period of time (the default is 60 minutes), the application placement controller automatically removes the server from the list server start failures. The server is included in the set of available servers. To adjust the application placement controller waiting time before removing a server from the list of server start failures, set the application placement controller custom property (in minutes): APC.XD.failedServerTimePeriod.
Value Description Default waiting time before automatically removing servers from the list of server start failures 60 minutes Valid value minutes
APC.XD.memoryProfiler.totalMemoryWeight and APC.XD.memoryProfiler.residentMemoryWeight
Custom properties used for specifying the importance of total memory and available RAM when calculating available memory.
We can set the custom property to calculate available memory using the following code (on one line):
available memory = APC.XD.memoryProfiler.totalMemoryWeight * totalMemory + APC.XD.memoryProfiler.residentMemoryWeight * residentMemory.
where:
- available memory is the physical memory available on a node.
- totalMemory is physical memory plus virtual and shared memory.
- residentMemory is the amount of RAM.
The default value is 33.33333 for APC.XD.memoryProfiler.totalMemoryWeight.
The default value is 66.66666 for APC.XD.memoryProfiler.residentMemoryWeight.
On some operating systems, particularly Linux, the virtual size can be extremely high, causing the memory on a system is to appear consumed. This prevents APC from starting instances on nodes that actually have plenty of free memory. To resolve this issue, set APC.XD.memoryProfiler.totalMemoryWeight to 12 and the APC.XD.memoryProfiler.residentMemoryWeight to 88.
CenterCell
When you are configuring multi-cell performance management in the environment, we can use the CenterCell custom property to designate one cell as the center cell. You also set the CenterCell custom property individually for each cell to designate as a point cell.
Avoid trouble: One and only one custom property should be set to true.gotcha
Value Description Scope Cell Valid values true: Designates one cell as the center cell false: Designates one cell as a point cell
apcConcurrentStartSize
We can use the apcConcurrentStartSize custom property to define the maximum number of server instances the application placement controller should attempt to start concurrently on a particular node.
The default number of server instances that the application placement controller attempts to start on a node is one instance. Set this property to a value greater than 1 if we want the application placement controller to start more than one server instance at the same time on a particular node.
Value Description Scope Application placement controller Valid values An integer value that specifies the maximum number of instances to be started concurrently on a specific node. Default 1
lazyStartMinInstances
We can use the lazyStartMinInstances custom property to configure multiple server instances to start when the on demand router (ODR) detects activity.
Prior to Version 6.1.1.2, only one server instance was started when a dynamic cluster was configured for application lazy start and the ODR received requests for the inactive dynamic cluster. By setting the lazyStartMinInstances custom property, however, multiple instances can be started.
When set the custom property at the application placement level, the property applies to all of the dynamic clusters. Alternatively, we can set the custom property on a specific dynamic cluster so that multiple instances are started by that particular dynamic cluster. If other dynamic clusters configured for application lazy start exist, those clusters start only one instance each. The custom property value set at the dynamic cluster level overrides the custom property value set at the application placement level.
Value Description Scope Dynamic cluster Valid values An integer value that specifies the minimum number of instances to be lazily started. Default 1
apc.log.enablePlacementLog
We can use the apc.log.enablePlacementLog custom property to enable or disable logs from being saved to the apc.log log file. The apc.log log file contains information about placement decisions. IBM support can use this log file to help understand the placement decisions that are being made by the application placement controller.
Value Description Scope Application placement controller Valid values No value: The placement log is enabled.
false: The placement log is disabled.
apc.log.LogFileSize
We can use the apc.log.LogFileSize custom property to set the size of the application placement controller log file, the apc.log file, to a size in megabytes. The default size is 100 megabytes, but we can change the default value.
Value Description Scope Application placement controller Valid values An integer value of the number of megabytes for the log file. For example, if you enter 200, each log file will be about 200 megabytes.
The JVM attempts to limit the log file to a byte size of 200 * 1024 * 1024 or 209,715,200 bytes, which is a smaller limit used by the JVM and is an approximate value. The actual size will likely be larger and varies by each JVM vendor. The actual byte size on the disk depends on the sector and cluster size of the physical disk, which will likely be larger than the byte size of the file.
apc.log.numHistoricalFiles
We can use the apc.log.numHistoricalFiles custom property to set the number of log files that are saved for the application placement controller. When the application placement controller log file reaches its maximum size, the historical file is saved if this value is greater than 1. If the value is equal to 1, the historical data appends to the existing file.
Value Description Scope Application placement controller Valid values An integer value that specifies the number of historical files to save, for example, 2.
APC.XD.cpuUtilizationThreshold
We can use the APC.XD.cpuUtilizationThreshold custom property to define the percentage of processor power that we can use on each node in a cell.
The APC.XD.cpuUtilizationThreshold custom property defines the percentage of processor power used on the nodes in the environment. The default value is 100, which means that 100% of the processor can be used on each node in the cell. For configurations that involve z/OS nodes, set this value to less than 100.
Note: The default value for APC.XD.cpuUtilizationThreshold is COP-10 when node-based ARFM is enabled.
The application placement controller attempts to compute placements so that the utilization of any node does not exceed the defined threshold. The application placement controller considers all processes, including processes that are not related to WebSphere Application Server or Intelligent Management when making these calculations.
(zos) Important: This property must be defined and must be set to a value less than 100 for configurations that involve z/OS nodes.
Value Description Scope Application placement controller: applies to all nodes in the cell.
Node: applies to a specific node.
Valid values An integer value that specifies the percentage of processor power to use on each node in the cell.
GenerateUniquePorts
We can use the GenerateUniquePorts custom property to generate unique ports for each dynamic cluster member.
(zos) By default, dynamic cluster members on distributed nodes are created with unique ports, while z/OS nodes do not have unique ports. On the z/OS platform, port numbers are usually set symmetrically according to specific range of numbers. The first dynamic cluster member always has unique ports, and these port numbers are applied to the other dynamic cluster members. We can set this property on the node group or on an individual node.
Value Description Scope Node group, node Valid values true: Unique ports are generated for each dynamic cluster member.
false: Unique ports are created for the first dynamic cluster member, and subsequent dynamic cluster members use the same ports.
Default z/OS platforms: false
If vertical stacking is enabled for a z/OS dynamic cluster, the port allocation strategy is forced to true, to generate unique ports for each dynamic cluster member.
Distributed platforms: true
maintenanceModeOnOperationFail
We can use the maintenanceModeOnOperationFail custom property to move a server into maintenance mode when the server start fails. The default value is false, which, instead of placing the server into maintenance mode when a server start fails, generates a runtime task. This runtime task contains a notification that the application placement controller did not receive notification about the completion of the server start.
Value Description Scope Application placement controller Valid values true: Places the server into maintenance mode when the server start fails.
false: Generates a runtime task when a server start fails.
Default false
memoryProfiler.isDisabled
We can use the memoryProfile.isDisabled custom property to disable the memory profiler.
Under the default operation, the application placement controller profiles dynamic clusters online to determine their memory usage. We can disable this default operation by setting the memoryProfiler.isDisabled custom property to true. When the memory profiler is disabled, the application placement controller assumes a default memory usage value. This memory usage value is computed as 64k + 1.2 maxHeapSize, where maxHeapSize is the maximum heap size setting in the server template of the dynamic cluster.
Value Description Scope Application placement controller Valid values true: Disables the memory profiler.
false: Enables the memory profiler.
Default false
OverlappingCells
We can use the OverlappingCells custom property when two Intelligent Management cells share the same physical host. Configuring this property ensures that the application placement controller does not overuse resources on the shared host.
For more information about setting custom properties, read about configuring application placement for cells that share the same nodes.
Value Description Scope Application placement controller Valid values Enter the custom property value in the following format:
user_name:password@deployment_manager_host:port.SOAP
If we are connecting three or more cells, separate the custom property values for each cell with a comma.
- user_name: Name of the user that can log into the other cell.
- password: Password for that user. We can encode the password so that it does not display in plain text in the console. To encode a password, use the encodePassword script.
- deployment_manager_host: Name of the deployment manager host for the other cell.
- port: SOAP port that is associated with the deployment manager, for example, the SOAP_CONNECTOR_ADDRESS port.
reservedMemoryFixed and reservedMemoryPercent
We can use these custom properties to define how much memory on each node to reserve for processes that are not related to WebSphere Application Server or Intelligent Management.
When these properties are defined, the total memory on a node for processes that are not related to WebSphere Application Server or Intelligent Management can be calculated using the following formula:
reservedMemoryFixed + reservedMemoryPercent * (totalNodeMemory - reservedMemoryFixed)
The reservedMemoryFixed custom property specifies a fixed amount of memory to reserve. The reservedMemoryPercent custom property specifies a percentage of memory to reserve.
Value Description Scope Application placement controller Valid values To set the value for the entire cell: Type the name of the custom property as reservedMemoryFixed or reservedMemoryPercent.
To set the value for a particular node: Type the name of the custom property, either reservedMemoryFixed.node or reservedMemoryPercent.node, where node is the name of the node. For example, if the node is named node1, the names of the custom properties are reservedMemoryFixed.node1 and reservedMemoryPercent.node1.
Default reservedMemoryFixed: 64 MB reservedMemoryPercent: 5%
unsetMaintenanceModeAfterStart
Use this custom property to take a server out of maintenance mode after the server starts. If the maintenanceModeOnOperationFail custom property is enabled, the server is placed into maintenance mode after the server start fails. When the server starts successfully, we can use this property to move the started server out of maintenance mode automatically.
Value Description Scope Application placement controller Valid values true: Moves the started server out of maintenance mode automatically.
false: Leaves the server in maintenance mode after it is started.
Default false
useNodeFreeMemory
Use this custom property to define a replacement to the reservedMemory default custom property. This custom property uses the node free memory statistic, plus the memory calculated for any dynamic cluster instances that are already on the node, to calculate the memory available for launching additional dynamic cluster instances.
Value Description Scope Application placement controller Valid values true: Automatically calculates available memory.
false: Use reservedMemory default custom properties to define available memory.
Related tasks
Create dynamic clusters Configure dynamic application placement Configure multi-cell performance management: Star Topology Configure elasticity mode Configure application placement for cells that share the same nodes
Related information:
Intelligent Management: dynamic cluster custom properties