TrueLog Generation Settings

Overview

TrueLogs are usually not enabled during load testing as they are CPU and I/O intensive. Typically, TrueLogs are enabled during script development/verification only. TrueLog On Error files are usually enabled during load testing as they are optimized for performance and have only a slight impact on CPU. TrueLog On Error files can be activated for large tests without major impact on replay performance, even when a moderate number of errors are anticipated.

Silk Performer’s generation of TrueLog On Error has a slight impact on scalability however. To keep this impact as low as possible, the Silk Performer TrueLog recording level can be adjusted in the following ways:
  • TrueLog length
  • Severity of incidents for which TrueLog is recorded
  • Inclusion of embedded objects

The TrueLog generation options detailed in the following sections can be configured by choosing Settings > Active Profile > Results > TrueLog within Silk Performer. This same page is also used to enable the generation of TrueLog On Error (.xlg) files for each virtual user in tests (using the TrueLog On Error files (.xlg) check box).

Length of TrueLogs

TrueLog On Error tracking can be configured to store complete transactions one transaction at a time, or in the case of Web applications, the five most recent pages of content history.

Generating TrueLog based on complete transactions - This setting tracks each erroneous transaction, rather than all relevant pages (content history). As memory consumption is dependent on the length of each transaction, use this option only when memory is of no concern or when transactions are short.

Generating TrueLog based on content history - This setting stores recent page history only, and drops non-relevant pages from memory. This approach makes memory consumption more predictable and manageable. Although, consumption is still dependent on the sizes of pages stored in memory.

Severity

You can define the severity of incidents that trigger the writing of TrueLog data to disk (initially stored in RAM) using the Generate TrueLog On Error for setting.

Embedded Objects

Log all embedded objects - TrueLogs contain the response bodies of all embedded objects. Even when request and response headers are no longer contained in the history, the content of embedded objects may still be displayed in the browser. This can be a matter of concern when a page does not request an image from a server because it is a cache hit or when the server responded with a 304 not modified error. To guarantee that all embedded objects are displayed, Silk Performer stores the contents of each embedded object in a global process-spanning cache.

Exclude cached embedded objects - When a global store for cached objects is not enabled, some images will not load. This setting provides a small gain in performance and requires less memory.

Exclude all embedded objects - When embedded object bodies are not logged at all, embedded objects do not load. This setting significantly reduces memory consumption. However, the visual information that is offered with this approach is greatly compromised.

In cases where TrueLog On Error information is recorded based on content history, the impact on memory usage per virtual user can be estimated based on sample tests. The numbers below were calculated based on sample tests run against well known Web sites, including Amazon.com and IBM.com.
Setting Additional memory consumption
Exclude all embedded objects 80%
Exclude cached embedded objects 125%
Log all embedded objects 130%
Note: The settings that require the least amount of memory (storing TrueLog data based on content history and excluding all embedded objects) are sufficient for logging all relevant data. However, the visual information they offer is greatly compromised.