![]() | ![]() | ![]() | ![]() |
The SAS Decision Services Engine Server uses two thread pools:
In order to change the servlet thread pool setting, edit the configuration of your web application server. For JBoss, the setting is contained in jboss-service.xml under the directory for SASServer7. The default setting that is configured by the SAS® installer is 10. Most environments can safely increase that number significantly.
In order to change the activity thread pool, add the following system property in the JVM arguments for SASServer7. (SASServer7 is the web application server that hosts our SAS Decision Services Engine Server application.)
rtdm.activity.execution.thread.pool.maxThreads=NEW-MAX-THREAD-VALUE
You can check the current value for these settings from the Diagnostics.jsp page.
If you increase the servlet thread pool, then consider increasing the activity thread pool setting, as well. The number of activity threads that you need per servlet thread depends on your campaign design. For example, you might have an average of five treatment campaigns that run concurrently during arbitration for each execution of a parent campaign. In this case, you might need more than five times as many activity threads as servlet threads. However, if you do not have concurrent calls to more than one activity or subflow from a parent flow (campaign), then you need approximately the same number of activity threads as servlet threads. In this case, set the number of activity threads slightly higher in order to account for any garbage collection, hanging, exception, or logging delays.
Because each thread requires memory and CPU resources, you need to monitor resource usage after each tuning parameter change. One quick way to tune these settings is to increase the size of the servlet thread pool until you start getting "rejected" exceptions from the activity pool. These exceptions are written in the SAS Decision Services Engine Server logs when there are too many servlet threads for the number of activity threads. At that setting, if you still have CPU available, increase the activity thread pool size until you no longer receive these exceptions. If you do not still have CPU available, then decrease the size of the servlet thread pool slightly.
Note: To set these thread pool values in SAS 9.4, see SAS® 9.4 Web Applications: Tuning for Performance and Scalability, Third Edition.
Product Family | Product | System | Product Release | SAS Release | ||
Reported | Fixed* | Reported | Fixed* | |||
SAS System | SAS Real-Time Decision Manager | Microsoft® Windows® for x64 | 5.41 | |||
64-bit Enabled AIX | 5.41 | |||||
64-bit Enabled Solaris | 5.41 | |||||
HP-UX IPF | 5.41 | |||||
Linux for x64 | 5.41 | |||||
Solaris for x64 | 5.41 |