Performance tuning statistics

Performance tuning for HTTP connections protects CICS® from unconstrained resource demand. You can use TCP/IP statistics to see if performance tuning has taken place.

Using TCP/IP statistics to see whether CICS has paused listening for new HTTP connection requests because it is under stress

If a region becomes overloaded, CICS pauses listening for new HTTP connection requests, and any new requests queue outside of CICS in the TCP/IP backlog queue. The size of this queue is set per TCPIPSERVICE by the resource BACKLOG attribute. If enough requests are received to fill the queue, new connection requests will be dropped. The following fields in TCP/IP Global statistics indicate whether CICS has paused listening for new HTTP connection requests as a result of performance tuning:

Performance tuning for HTTP connections (SOG_SOTUNING)
Indicates whether performance tuning for HTTP connections is enabled.
Socket listener has paused listening for HTTP connections (SOG_PAUSING_HTTP_LISTENING)
Indicates whether the listener has paused listening for HTTP connection requests because the number of tasks in the region has reached the limit for accepting new HTTP connection requests.
Number of times socket listener notified at task accept limit (SOG_TIMES_AT_ACCEPT_LIMIT)
Indicates the number of times the listener has been notified that the number of tasks in the region has reached the limit for accepting new HTTP connection requests.
Last time socket listener paused listening for HTTP connections (SOG_TIME_LAST_PAUSED_HTTP_LISTENING)
Indicates the last time the socket listener paused listening for HTTP connection requests because the number of tasks in the region had reached the limit for accepting new HTTP connection requests.

For a TCPIPSERVICE, the following fields in TCP/IP services: Resource statistics indicate whether requests are queuing in the TCP/IP backlog queue and whether the queue is full and new connection requests are being dropped:

Current backlog (SOR_CURR_BACKLOG)
Indicates the current number of connection requests waiting in the backlog queue, summed over all appropriate stacks if the TCP/IP service is listening on multiple stacks.
Connections dropped (SOR_CONNS_DROPPED)
Indicates the total number of connections that were dropped because the backlog queue of the TCP/IP service was full, summed over all appropriate stacks if the TCP/IP service is listening on multiple stacks.
Time connection last dropped (SOR_CONN_LAST_DROPPED)
Indicates the time that a connection was last rejected because the backlog queue of the TCP/IP service was full.
Current maximum backlog (SOR_CURR_MAX_BACKLOG)
Indicates the maximum number of connection requests that the TCP/IP service currently allows in the backlog queue for the service, summed over all appropriate stacks if the TCP/IP service is listening on multiple stacks. This value can be greater than the value that is specified in the BACKLOG attribute (SOR_BACKLOG) of the TCP/IP service because the TCP/IP service might temporarily increase this value if, for example, it determines that there is a SYN flood.
Note: If a CICS region has reached the maximum number of user tasks, which is specified in the MXT SIT parameter, you might not be able to log into the CICS system and issue a STATS command. If this happens, you can use the NETSTAT ALL command to obtain the information about the backlog queue and connections dropped.

Using TCP/IP statistics to see whether existing persistent HTTP connections are being closed because a region is under stress

If the region continues to become overloaded, it closes existing persistent HTTP connections after their next request completes, and does not allow new HTTP connections to be persistent until the region is no longer under stress. The following statistics in TCP/IP Global statistics indicate whether CICS is temporarily disallowing HTTP connection persistence as a result of performance tuning:

Performance tuning for HTTP connections (SOG_SOTUNING)
Indicates whether performance tuning for HTTP connections is enabled.
Region stopping HTTP connection persistence (SOG_STOPPING_PERSISTENCE)
Indicates whether the region is closing existing persistent connections when their next request completes and is making new connections non-persistent, because the number of tasks in the region has exceeded the limit.
Number of times region stopped HTTP connection persistence (SOG_TIMES_STOPPED_PERSISTENT)
Indicates the number of times the region took action to close existing persistent connections when their next request completes and make new connections non-persistent, because the number of tasks in the region had exceeded the limit.
Last time stopped HTTP connection persistence (SOG_TIME_LAST_STOPPED_PERSISTENT)
Indicates the last time the region took action to close existing persistent connections when their next request completes and make new connections non-persistent, because the number of tasks in the region had exceeded the limit.
Number of persistent connections made non-persistent (SOG_TIMES_MADE_NON_PERSISTENT)
Indicates the number of times a persistent HTTP connection was made non-persistent because the number of tasks in the region had exceeded the limit.
Number of times disconnected an HTTP connection at max uses (SOG_TIMES_CONN_DISC_AT_MAX)
Indicates the number of times a persistent HTTP connection was disconnected because the number of uses had exceeded the limit.

For a TCPIPSERVICE, the following statistics in TCP/IP services: Resource statistics indicate whether existing persistent connections are being disconnected and whether new persistent connections will be made non-persistent:

Made non-persistent at task limit (SOR_NONP_AT_TASK_LIMIT)
Indicates the number of times a new persistent HTTP connection was made non-persistent because the number of tasks in the region had exceeded the limit.
Disconnected at task limit (SOR_DISC_AT_TASK_LIMIT)
Indicates the number of times an existing persistent HTTP connection was closed because the number of tasks in the region had exceeded the limit.
Disconnected after maximum uses (SOR_DISC_AT_MAX_USES)
Indicates the number of times a persistent HTTP connection was disconnected because its number of uses had exceeded the limit.

If there are suddenly a lot more non-persistent connections than normal, check whether performance tuning temporarily disallowed connection persistence to allow the region to recover from overloading.

Multiple stacks considerations

If the TCPIPSERVICE is listening on multiple stacks, each stack has its own independent backlog queue for the TCPIPSERVICE. The following statistics fields are the sum of values over all the stacks:

  • Current backlog (SOR_CURR_BACKLOG)
  • Connections dropped (SOR_CONNS_DROPPED)

The following statistics fields report the greatest value among all stacks:

  • TCPIPSERVICE Backlog Setting (SOR_BACKLOG)
  • Time connection last dropped (SOR_CONN_LAST_DROPPED)
  • Current maximum backlog (SOR_CURR_MAX_BACKLOG)

This means that the reported number of requests currently queuing in the backlog queue (SOR_CURR_BACKLOG) can be greater than the reported backlog setting (SOR_CURR_MAX_BACKLOG) because the latter is the size of the queue per stack.