Modify the minimum and maximum number of worker threads to increase performance.
PingAccess engines use a pool of worker threads to process requests received on the runtime ports, and another pool to process requests from agents. These worker threads do the initial handling of request processing within PingAccess. By default, PingAccess starts with a minimum of 5 worker threads in each pool. New threads are created as needed, with the maximum size being unlimited.
Maintenance of the pool size is such that if the number of threads in the pool
exceeds the value of engine.httptransport.coreThreadPoolSize
or
agent.httptransport.coreThreadPoolSize
, threads idle for 60
seconds are terminated and removed from the pool.
The idle timeout value is not modifiable. However, if the values of
engine.httptransport.coreThreadPoolSize
and
engine.httptransport.maxThreadPoolSize
are the same, a fixed sized pool
is created and idle threads are not terminated and removed. The same is true for
agent.httptransport.coreThreadPoolSize
and
agent.httptransport.maxThreadPoolSize
.
Unless you want to restrict the maximum number of concurrent requests admitted for
processing by a PingAccess engine, you should leave
engine.httptransport.maxThreadPoolSize
and
agent.httptransport.maxThreadPoolSize
set to unlimited
(-1).
For engine.httptransport.coreThreadPoolSize
and
agent.httptransport.coreThreadPoolSize
, the defaults should be
sufficient for all deployments. The creation of new threads is efficient, so it is
unlikely that end users could detect any improvement in performance by increasing
the values for these properties. Increasing these values also increases the baseline
memory footprint of PingAccess due to the increase in memory for the additional
threads.
These worker threads do not perform any input or output processing. Incoming and outgoing communication (I/O) is performed by two additional pools of threads. One pool handles request from, and responses to, clients; another handles requests to, and responses from, application servers proxied by PingAccess. These pools use a fixed number of threads and by default, the number of threads in these pools is equal to twice the number of logical CPU cores on the host computer.
To modify the number of worker threads: