Intelligent Management: autonomic request flow manager custom properties
Use the following JVM custom properties to change the behavior of the autonomic request flow manager (ARFM). Some custom properties are set on deployment targets. All ARFM custom properties are case sensitive.
See: Set autonomic request flow manager custom properties
AC5.BurstFactor
Change how tolerant memory overload protection (MOP) is to bursts of traffic. If the maximum rate is one unit per second and the burst factor is one, then one unit of non-affinity traffic is admitted if it did not admit one in the last second. If the burst factor is three however, it admits three units every three seconds.
Scope On demand router Valid values Integer Default 3 arfmIgnoreHttpSessionsForCpu
If true the ARFM ignores the HTTP dialog structure for the purposes of CPU overload protection. Every incoming HTTP message is subject to admission control.
Scope Cell Valid values Boolean Default False arfmIgnoreSipDialogsForCpu
If true the ARFM ignores the SIP dialog structure for the purpose of processor overload protection. Every incoming SIP message is subject to admission control.
Scope Cell Valid values Boolean Default False For the custom property arfmIgnoreSipDialogsForCpu node-based ARFM applies to HTTP only.
arfmManageCpu
CPU overload protection is on by default. Set this to false to disable CPU overload protection and request prioritization.
Scope Cell Valid values Boolean (true or false) Default True If the custom property arfmManageCPU is set to false, no queuing will occur.
arfmManualAllocation
Specify on a deployment target to put ARFM into manual mode when the custom property arfmMode is not set to manual. The value of the property is a string in a syntax that allows expression of allocations.
Scope Deployment target (Static cluster) Valid values String Default No default String syntax:
spec = [case(,case)*]
case = casepattern=allocation
casepattern = [protocol-family:[proxy-process:]]service-class
protocol-family = SIP|HTTP|IIOP|JMS|*
service-class = step
proxy-process = [[step/]step/]step
step = namepattern
allocation = value[:value[:value]]
value = number|*Use white space between any two tokens. White space cannot be used between the tokens of a proxy-process value. For a specific message flow (for example, a combination of protocol family, proxy process, service class, and target cluster), the spec is processed left to right, and the first match is implemented.
We can express concurrency allocation with an integer number, or we can be omit it. Omission is denoted either by an asterisk, or by lack of mention. If the concurrency limit (number of seats) is omitted for a message flow, there is no concurrency limitation, and ARFM does not impose queuing on that specific message flow.
If the proxy process identifier is omitted, the allocations are divided equally among the active proxy processes (ODRs) of the protocol family.
To limit concurrency, set the cell custom property enableRateBasedARFM to false. When we configure concurrency, apply a factor of eight.
The following examples show different concurrency configurations:
*=*
No concurrency limits are imposed.
*=800
100 seats are allocated to each service class, divided evenly among the active <protocol family, proxy process> pairs.
gold=96, HTTP:silver=160, SIP:*:silver=32
The gold service class gets a total of 12 seats that are evenly divided among the active <protocol family, proxy process> pairs. The silver HTTP traffic gets 20 seats, evenly divided among its active ODRs. The silver SIP traffic gets four seats. Any flow that does not match any of the configured patterns has no concurrency limit.arfmMaxRequestsPerCluster
Limits the number of concurrent requests running across a cluster. Set at the cluster level to limit for a particular cluster. Set at the cell level to limit all clusters on that cell. Cluster level limits override cell level limits.
Scope Cell/Cluster Valid values Integer Default No Default arfmMaxRequestsPerServer
Limit the number of concurrent requests running on a cluster. Set at the cluster level to limit a particular cluster or set at the cell level to limit all clusters on that cell. Cluster level limits will override cell level limits.
Scope Cell/Cluster Valid values Integer Default No Default arfmMode
Operating mode of the ARFM. In automatic mode, the ARFM has an autonomic controller that adjusts the dispatching priority of requests from the on demand routers to the servers and sends the placement controller information about the computational needs for the various dynamic clusters. In manual mode, we can override the autonomic controller with administrative settings.
Scope Cell Valid values Manual, Automatic Default Automatic arfmPriorities
Enforce strict priority for service policies so that lower priority requests are starved at the expense of the higher priority requests.
For example: If the value is "Gold=2, Silver=1", the Gold service policy has a priority of 2 and Silver has a priority of 1.
Scope Cell Valid values Comma-separated list of "<servicePolicyName>=<priority>" elements arfmQueueMode
Enables node-based ARFM when set to node.
Scope Cell Valid values Node, Cluster Default Cluster arfmQueueEnablingWindow
Designate the CPU value where a node will begin to use node-based ARFM control traffic. For example: Setting this value to 20 and CPU Overload Protection to 90 will allow node-based ARFM control traffic starting at a CPU value of 70.
Scope Cell Valid values Integer Default 40 arfmSharedCpu
Specify a map of nodes sharing hardware resources. We can use this custom property when running in a shared CPU environment where nodes can pool CPU resources.
Scope Cell Valid values Name, Node set pairs in the format : name=sharedNode1, sharedNode2, sharedNode3,... Default No Default CenterCell
When configuring multi-cell performance management in the environment, we can use the CenterCell custom property to designate one cell as the center cell. We also set the CenterCell custom property individually for each cell to designate as a point cell.
Set only one custom property to true.
Scope Cell Valid values true: Designates one cell as the center cell false: Designates one cell as a point cell
CPUAdjustment
We can set this custom property on nodes that are on hyperthreaded computers. When the CPUAdjustment custom property is specified on a node, a correction function to apply to processor utilization readings is specified for that node. This function is applied to the processor utilization that is reported by the operating system, and yields a more accurate utilization measure.
Scope Node Valid values String Default No default The custom property CPUAdjustment is a node property.
enableRateBasedARFM
ARFM uses a rate-based algorithm that results in a more consistent loading and protecting of application server resources. The rate-based ARFM feature is enabled by default. To disable the feature, set the enableRateBasedARFM custom property to false.
For concurrency limiting, the cell custom property enableRateBasedARFM must be set to false. Also, note that a factor of eight must be applied when we configure concurrency.
Scope Cell Valid values Boolean Default False goodServiceTimeLimitSpec
The default value of one minute for determining timeouts is used if goodServiceTimeLimitSpec or timeoutFactor is not set. To override the default, set this custom property to customize the value for different levels of granularity. For example, service class, application, or module. To create a general rule of 5 minutes, create the custom property and set the value to "*:*:*:*:*=300" where the last part is the timeout value of 300 seconds. The timeout value is a decimal number, not necessarily a whole number, and is in units of seconds.
Scope Cell Valid values Decimal number in unit of seconds Default 60 if timeoutFactor is not set. Otherwise, no default. magicNMode
We can set this custom property when ARFM is in automatic mode. When in automatic mode, concurrency limiting is performed according to one of two criteria, depending if the magicNMode custom property is enabled. When the magicNMode custom property is enabled, the total number of requests running concurrently at any given time is limited to a certain total. In normal mode, the total number of requests depends on the use of processor power on the nodes.
Scope Cell Valid values Boolean Default False When node-based ARFM is enabled use the custom property arfmMaxRequestsPerCluster to manage concurrency limits.
magicN
Use this custom property when ARFM has the magicNMode custom property is enabled, to the limit on the total number of concurrent requests. If this property is not defined, a reasonable limit is estimated from other data.
If we are using the reasonable limit estimation, the limit on the total number of concurrent requests for a cell is the sum of a contribution from each node in the cell. The contribution from a node is the average, over the running application servers on that node, of the maximum size of the thread pool of the Web container on that application server.
Scope Cell Valid values A positive integer defines the number of concurrent requests. To use the reasonable estimate, set the property value to a negative number or delete the custom property. Default -1 When node-based ARFM is enabled use the custom property arfmMaxRequestsPerCluster to manage concurrency limits.
maxHttpLiveRequests
Define the maximum number of requests that are targeted for a particular cell and could be anywhere in the cell. That is, either queued in an ODR or running on an application server at a given time.
Scope Cell Valid values Integer Default No default When node-based ARFM is enabled use the custom property arfmMaxRequestsPerCluster and queue limits to define the maximum number of requests that are targeted for a particular cell.
MOP.AveragingWindowInMS
The averaging window in milliseconds used by MOP. This time interval should be at least as long as the lifetime of 95 percent of the HTTP sessions, SIP dialogs, and application sessions. If the time interval is too short, MOP might not protect against memory overload. If the time interval is much longer than the lifetime of these objects, MOP still protects against memory overload but MOP takes a longer amount of time to ramp up to learn the maximum rate.
Scope Cell Units milliseconds Default 180000 ms MOP.InitialMaxRatePerSec
If no persisted maximum rate value exists, the value of this custom property is used as the initial maximum rate.
Scope Cell Default 1 node.memory
Available RAM defined in megabyte units on a node. Set this custom property on the node. Although this value is determined automatically, we can override the value.
Scope Node Valid values A number of megabytes Default No default node.numCPUs
Number of processors on a multi-processor node. This value is automatically determined, but we can override the value. Set this custom property on the node.
Scope Node Valid values Integer that represents the number of processors Default No default node.speed
Node speed in MHz. Set the value to the processor speed, multiplied by the number of processors on a multi-processor node. Set this custom property on the node. When we are running a node agent and a middleware agent on the same node, the node.memory value can be overridden. Define the custom property for both agents and set them to equal values.
Scope Node Valid values A floating point number that represents the number of MHz of the reference instruction set. Default No default timeoutFactor
This value is multiplied by the response time threshold to determine the fine-grained timeout threshold. Use a timeoutFactor custom property when configuring the ARFM. The timeoutFactor value is multiplied by the response time threshold to yield the fine-grained timeout threshold.
This fine-grained timeout threshold is one of three different factors that the ARFM uses to determine that a running request has timed out. The running request has timed out when one of the following factors is true:
- The proxy framework indicates the request timed out.
- The request reply includes a special HTTP header that indicates that the internal application timed out.
- The service time exceeds the fine-grained timeout value.
Scope Cell Valid values Decimal representation of a floating point number Default No default useODRs
Specifies if the work profiler and placement controller rely on the services of the ODR servers.
Scope Cell Valid values Boolean DefaultRT True Custom Properties: Cluster-Based vs. Node-Based ARFM
Custom Property Basic Function Applies when node-based ARFM is enabled Relevant to non-http protocols Changed by node-based ARFM AC5.BurstFactor Set MOP burst tolerance Yes Yes No arfmIgnoreHttpSessionsForCpu Ignore COP for session traffic Yes Yes No arfmIgnoreSipDialogsForCpu Ignore COP for Sip dialogs No Yes N/A arfmManageCpu Allow ARFM to manage CPU overloads Yes Yes No arfmManualAllocation Set ARFM to manual mode on a deployment target No Yes N/A arfmMaxRequestsPerCluster Limits the number of concurrent requests running across a cluster. Yes Yes No arfmMaxRequestsPerServer Limits the number of concurrent requests running on a cluster. Yes Yes No arfmMode Override ARFM settings with custom request flow management rules No Yes N/A CenterCell Designate the center cell of a star topology Yes Yes No CPUAdjustment Adjusts hyperthreaded nodes Yes Yes No enableRateBasedARFM Enable the use of a rate based gateway instead of a concurrency based gateway Yes Yes No goodServiceTimeLimitSpec Determines Timeout value Yes Yes No magicNMode Enable concurrency limit mode No Yes N/A magicN Limits the number of concurrency requests No Yes N/A maxHttpLiveRequests Max total requests allowed on the cell Yes Yes N/A MOP.AveragingWindowInMS MOP Setting Yes Yes No MOP.InitialMaxRatePerSec MOP Setting Yes Yes No node.memory Node manual override Yes Yes No node.numCPUs Node manual override Yes Yes No node.speed Node manual override Yes Yes No timeoutFactor Determines the timeout value Yes Yes No useODRs Obsolete N/A N/A N/A
Related:
Dynamic operations environment Configure the autonomic request flow manager Configure the autonomic managers Configure multi-cell performance management: Star Topology Intelligent Management: autonomic request flow manager advanced custom properties