The SAS Decision Services Design Server and Engine Server execute decision campaigns as flows. The execution time for a flow or an activity (scoring and custom DS2) is a key measure of system health for a real-time system such as SAS Real-Time Decision Manager. One way to measure performance is to use an industry standard tool such as LoadRunner or JMeter. These tools are accurate and scale well. However, they usually require significant effort, expertise, or expense to install and configure. They also do not generally track application-specific features that you might want (for example, node counts over a particular interval).
Often, a quick approximation of execution time or counts per interval is all that is needed in order to diagnose a problem. A new feature was introduced in SAS Decision Services 5.5 M1 (SAS Real-Time Decision Manager 5.41 M1), Hot Fix F52002, that enables you to obtain this information. This feature estimates the execution time for a flow or an activity by sampling at specified intervals. This lightweight monitoring is also available in SAS Decision Services 6.2 and 6.3. The capability is not available in SAS Decision Services 5.6 (SAS Real-Time Decision Manager 6.1).
The SAS Decision Services engine uses log4j for logging messages. The logging subsystem logs execution timings for flows and activities. Because the logger writes to a single file on disk, it is not feasible to log every transaction. If you attempted to do this, the logging would force the engine to serialize the flow execution and slow down throughput. Instead of logging every transaction, the new logging samples executions on a predetermined interval to check the execution time. This interval measurement is logged. The sampling interval can be increased to write as rarely as you want in order to minimize the impact of logging on engine performance.
This feature is not intended to be left on all of the time because of the performance penalty that is associated with logging. A good choice of sampling schedule and intervals can produce useful numbers without significantly affecting the system performance.
You can use the following two loggers to turn on performance logging:
-
com.sas.rtdm.implementation.EventExecutor.FLOW_TIME
-
com.sas.rtdm.implementation.EventExecutor.ACTIVITY_TIME
If these loggers are set to TRACE, they will log the flow execution time and activity execution time, respectively. The sampling frequency can be set by the following two JVM level system properties:
-
com.sas.rtdm.implementation.flowLogFrequency
- com.sas.rtdm.implementation.activityLogFrequency
The default value of the sampling frequency is 200. In other words, every 200th flow execution is logged.
If the flow execution time is large and the expected throughput low, a smaller value of sampling frequency can be used to produce more data points. If there are too many log entries, it is likely that the logging is interfering with the throughput and a longer sampling interval is necessary.
Starting with SAS Decision Services 5.6 (SAS Real-Time Decision Manager 6.1), the product itself includes monitoring capabilities.
SAS® Decision Services 5.6 (SAS® Real-Time Decision Manager 6.1) Performance Tracking
Data that is tracked include the following:
- counts of events that were executed, aggregated over a specified time period
- counts of specific node (scoped by flow) that were executed and aggregated over a specified time period. This is a very flexible method. You can track how many times a flow is executed by tracking the counts of a Start node, the number of times an activity is called from a flow by tracking the activity Call node, the number of times a subflow is called from a flow by tracking the subflow Call node, and so on. You can also count the number of times the standard or fault response is returned using this feature.
- response time of flows, aggregated over a specified time period
These features are exposed by SAS Decision Services as a web service (SOAP call). For more information, see SAS Note 51268 "Monitoring flow response time, event counts, and node counts in SAS Decision Services 5.6 (SAS Real-Time Decision Services 6.1)".
Operating System and Release Information
SAS System | SAS Real-Time Decision Manager | Microsoft® Windows® for x64 | 5.41 | | 9.3 TS1M2 | |
64-bit Enabled AIX | 5.41 | | 9.3 TS1M2 | |
64-bit Enabled Solaris | 5.41 | | 9.3 TS1M2 | |
HP-UX IPF | 5.41 | | 9.3 TS1M2 | |
Linux for x64 | 5.41 | | 9.3 TS1M2 | |
Solaris for x64 | 5.41 | | 9.3 TS1M2 | |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.