PingDirectory

Embedded profiler

If the PingDirectory server appears to be running slowly, then it is helpful to know what operations are being processed in the server. The JVM Stack Trace monitor entry can be used to obtain a point-in-time snapshot of what the server is doing, but in many cases, it might be useful to have information collected over a period of time.

The embedded profiler is configured so that it is always available but is not active by default so that it has no impact on the performance of the running server. Even when it is running, it has a relatively small impact on performance, but it is recommended that it remain inactive when it is not needed. It can be controlled using the dsconfig tool or the Administrative Console by managing the "Profiler" configuration object in the "Plugin" object type, available at the standard object level. The profile-action property for this configuration object can have one of the following values:

  • start – Indicates that the embedded profiler should start capturing data in the background.

  • stop – Indicates that the embedded profiler should stop capturing data and write the information that it has collected to a logs/profile{timestamp} file.

  • cancel – Indicates that the embedded profiler should stop capturing data and discard any information that it has collected.

Any profiling data that has been captured can be examined using the profiler-viewer tool. This tool can operate in either a text-based mode, in which case it dumps a formatted text representation of the profile data to standard output, or it can be used in a graphical mode that allows the information to be more easily understood.

Invoking the profile viewer in text-based mode

Steps

  • Run the profile-viewer command and specify the captured log file using the --fileName option.

    Example:

    $ bin/profile-viewer --fileName logs/profile.20110101000000Z

Invoking the profile viewer in GUI mode

Steps

  • Run the profile-viewer command and specify the captured log file using the --fileName option. To invoke GUI mode, add the option --useGUI.

    Example:

    $ bin/profile-viewer --fileName logs/profile.20110101000000Z --useGUI