The Directory Server's current activities can be monitored from either the Directory Server Console or the command line. It is also possible to monitor the activity of the caches for all of the database.
Many performance counters in Directory Server use 32-bit numbers. This includes many kind of performance monitoring, such as the number of active connections (
nsslapd-db-active-txns), the number of operations (
threads), and the number of search requests (
nsslapd-db-cache-try). However, under heavy loads, these 32-bit counter numbers can wrap too quickly. The
nsslapd-counters attribute enabled the Directory Server to use 64-bit values for counter numbers, even on 32-bit systems. This enables long term statistics gathering for high-traffic systems.
Some of the counters for Directory Server database attributes monitored by server use 64-bit integers, even on 32-bit systems:
The counters which use 64-bit integers are not configurable.
15.7.1. Monitoring the Server from the Directory Server Console
Select the Status tab.
In the navigation tree, select Performance Counters.
The Status tab in the right pane displays current information about server activity. If the server is currently not running, this tab will not provide performance monitoring information.
Click Continuous check box.
to refresh the current display. For the server to continuously update the displayed information, select the
The General Information table shows basic information about the server, which helps set a baseline about the statistics that have been gathered.
Table 15.2. General Information (Server)
| Field || Description |
| Server Version || Identifies the current server version. |
| Startup Time on Server || The date and time the server was started. |
| Current Time on Server || The current date and time on the server. |
The Resource Summary table shows the totals of all operations performed by that instance.
Table 15.3. Resource Summary
| Resource || Usage Since Startup || Average Per Minute |
| Connections || The total number of connections to this server since server startup. || Average number of connections per minute since server startup. |
| Operations Initiated || The total number of operations initiated since server startup. Operations include any client requests for server action,such as searches, adds, and modifies. Often, multiple operations are initiated for each connection. || Average number of operations per minute since server startup. |
| Operations Completed || The total number of operations completed by the server since server startup. || Average number of operations per minute since server startup. |
| Entries Sent to Clients || The total number of entries sent to clients since server startup. Entries are sent to clients as the result of search requests. || Average number of entries sent to clients per minute since server startup. |
| Bytes Sent to Clients || The total number of bytes sent to clients since server startup. || Average number of bytes sent to clients per minute since server startup. |
The Current Resource Usage table shows the current demands on the server.
Table 15.4. Current Resource Usage
| Resource || Current Total |
| Active Threads || The current number of active threads used for handling requests. Additional threads may be created by internal server tasks, such as replication or chaining. |
| Open Connections || The total number of open connections. Each connection can account for multiple operations, and therefore multiple threads. |
| Remaining Available Connections || The total number of remaining connections that the server can concurrently open. This number is based on the number of currently open connections and the total number of concurrent connections that the server is allowed to open. In most cases, the latter value is determined by the operating system and is expressed as the number of file descriptors available to a task. |
| Threads Waiting to Write to Client || The total number of threads waiting to write to the client. Threads may not be immediately written when the server must pause while sending data to a client. Reasons for a pause include a slow network, a slow client, or an extremely large amount of information being sent to the client. |
| Threads Waiting to Read from Client || The total number of threads waiting to read from the client. Threads may not be immediately read if the server starts to receive a request from the client, and then the transmission of that request is halted for some reason. Generally, threads waiting to read are an indication of a slow network or client. |
| Databases in Use || The total number of databases being serviced by the server. |
The Connection Status table simply lists the current active connections, with related connection information.
Table 15.5. Connection Status
| Table Header || Description |
| Time Opened || The time on the server when the connection was initially opened. |
| Started || The number of operations initiated by this connection. |
| Completed || The number of operations completed by the server for this connection. |
| Bound as || The distinguished name used by the client to bind to the server. If the client has not authenticated to the server, the server displays |
not bound in this field.
| Read/Write || Indicates whether the server is currently blocked for read or write access to the client. There are two possible values:
| Not blocked means that the server is idle,actively sending data to the client, or actively reading data from the client. |
| Blocked means that the server is trying to send data to the client or read data from the client but cannot. The probable cause is a slow network or client. |
The Global Database Cache table lists the cache information for all databases within the Directory Server instance.
Although the performance counter for the global database cache is listed with the other server performance counters in the Directory Server Console, the actual database cache entries are located and monitored in
, as are the other database activities. Monitoring these entries through the command line is covered in Section 15.8.2, “Monitoring Databases from the Command Line”
Table 15.6. Global Database Cache Information
| Table Header || Description |
| Hits || The number of times the server could process a request by obtaining data from the cache rather than by going to the disk. |
| Tries || The total number of database accesses since server startup. |
| Hit Ratio || The ratio of cache tries to successful cache hits. The closer this number is to 100%, the better. |
| Pages Read In || The number of pages read from disk into the cache. |
| Pages Written Out || The number of pages written from the cache back to disk. |
| Read-Only Page Evicts || The number of read-only pages discarded from the cache to make room for new pages. Pages discarded from the cache have to be written to disk, possibly affecting server performance. The lower the number of page evicts the better. |
| Read-Write Page Evicts || The number of read-write pages discarded from the cache to make room for new pages. This value differs from |
Pages Written Out in that these are discarded read-write pages that have not been modified. Pages discarded from the cache have to be written to disk, possibly affecting server performance. The lower the number of page evicts, the better.
15.7.2. Monitoring the Directory Server from the Command Line
The Directory Server's current activities can be monitored using LDAP tools such as
ldapsearch, with the following characteristics:
Search with the attribute filter
Use the search base
cn=monitor; the monitoring attributes for the server are found in the
Use the search scope
ldapsearch -D "cn=directory manager" -w secret -p 389 -h server.example.com -x -s base -b "cn=monitor" "(objectclass=*)"
The monitoring attributes for the Directory Server are found in the
entry. For information on searching the Directory Server, see Section 10.3, “Using ldapsearch”
Table 15.7. Server Monitoring Attributes
| Attribute || Description |
| version || Identifies the directory's current version number. |
| threads || The current number of active threads used for handling requests. Additional threads may be created by internal server tasks, such as replication or chaining. |
| connection:fd:opentime:opsinitiated:opscompleted:binddn:[rw] || Provides the following summary information for each open connection (only available if you bind to the directory as Directory Manager):
By default, this information is available to Directory Manager. However, the ACI associated with this information can be edited to allow others to access the information.
| fd — The file descriptor used for this connection. |
| opentime — The time this connection was opened. |
| opsinitiated — The number of operations initiated by this connection. |
| opscompleted — The number of operations completed. |
| binddn — The distinguished name used by this connection to connect to the directory. |
| rw — The field shown if the connection is blocked for read or write. |
| currentconnections || Identifies the number of connections currently in service by the directory. |
| totalconnections || Identifies the number of connections handled by the directory since it started. |
| dtablesize || Shows the number of file descriptors available to the directory. Each connection requires one file descriptor: one for every open index, one for log file management, and one for |
ns-slapd itself. Essentially, this value shows how many additional concurrent connections can be serviced by the directory. For more information on file descriptors, see the operating system documentation.
| readwaiters || Identifies the number of threads waiting to read data from a client. |
| opsinitiated || Identifies the number of operations the server has initiated since it started. |
| opscompleted || Identifies the number of operations the server has completed since it started. |
| entriessent || Identifies the number of entries sent to clients since the server started. |
| bytessent || Identifies the number of bytes sent to clients since the server started. |
| currenttime || Identifies the time when this snapshot of the server was taken. The time is displayed in Greenwich Mean Time (GMT) in UTC format. |
| starttime || Identifies the time when the server started. The time is displayed in Greenwich Mean Time (GMT) in UTC format. |
| nbackends || Identifies the number of back ends (databases) the server services. |
| backendmonitordn || Identifies the DN of each directory database. |