![]() | ![]() | ![]() | ![]() |
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:
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:
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.
Data that is tracked include the following:
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)".
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 | 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 |