Audits for performance profiling
To identify performance bottlenecks during operation execution, you can check the server audit log for the summary figures that indicate performance hotspots.
- An operation waits in the worker thread queue for a long time before the worker thread actually starts the operation.
- The time that is spent for cache contention inside the back-end requires tracking.
- The time that is spent in handling client input and output, that is, the time that is spent in receiving the request and returning the result. This value can also be used for detecting bottlenecks because of slow clients or network issues.
- The configuration options can be enabled to auditing for a combination of different types of operations. For example: auditing for add and modify operations only, along with the auditing for performance.
- At the end of operation execution, the audit information is stored
in the server audit logs only. In a scenario where the server is having
performance bottlenecks and is in a hung state, the
cn=workers, cn=monitorsearch can be issued. This search gives information about where each worker is stuck. This information is obtained by accumulating information that is collected about the worker until that point in the audit records.
- operationResponseTime
- Represents the time difference in milliseconds between the time the operation was received and the time its response was sent. The operation received time and the response sent time of an operation are published in audit v3 header.
- timeOnWorkQ
- Represents time in milliseconds spent in the worker queue before execution is initiated on the operation. The value of this field is the difference between the time execution was initiated and the time the operation was received.
- rdbmLockWaitTime
- Represents time in milliseconds spent in acquiring locks over
RDBM caches during operation execution. The value in this field helps
administrators to determine the time that is spent for cache contention
against real work. The lock wait time over the following resources are also considered.This field is implemented by introducing of a field in the operation structure. This field is updated when the acquiring of lock is attempted during operation execution. In addition, wrapper functions are introduced for functions that attempt to acquire locks over RDBM caches. These wrapper functions take another operation pointer as parameter and update the lock wait time field of the operation if ibm-auditPerformance is enabled.
- Resource cache
- DN cache
- Entry cache
- Filter cache
- Attribute cache Note: From IBM® Security Verify Directory, version 6.3 release, attribute cache is deprecated. Henceforth, users must avoid the use of attribute cache.
- Deadlock detector
- RDBM locks
- clientIOTime
- Represents time in milliseconds that was spent in receiving the complete operation request and returning the complete operation response. This field is implemented in the operation structure. It is updated on receiving the complete BER for operation request and on successfully returning the response BER message for the operation.
AuditV3--2006-09-09-10:49:01.863-06:00DST--V3 Search--
bindDN: cn=root--client: 127.0.0.1:40722--connectionID: 2--
received: 2006-09-09-10:49:01.803-06:00DST—Success
controlType: 1.3.6.1.4.1.42.2.27.8.5.1
criticality: false
base: o=sample
scope: wholeSubtree
derefAliases: neverDerefAliases
typesOnly: false
filter: (&(cn=C*)(sn=A*))
operationResponseTime: 591
timeOnWorkQ: 1
rdbmLockWaitTime: 0
clientIOTime: 180To control server performance hits when information for performance data fields is collected, the ibm-auditPerformance field is introduced in the audit configuration section. The value of the ibm-auditPerformance field is false, by default and therefore no performance data is collected and published by default. When the value of the ibm-auditPerformance field is set to true, performance data is collected and published in the audit logs for each operation that is enabled to be audited. If the ibm-auditPerformance field is enabled, that is, set to true, in audit record section the four performance data fields are audited: operationResponseTime, timeOnWorkQ, rdbmLockWaitTime, and clientIOTime. The values of these performance data fields are times in milliseconds.