Microsoft Dynamics NAV Performance Counters

The following table describes the performance counters that are available in Dynamics NAV for monitoring Microsoft Dynamics NAV Server instances.

Client session counters

These counters pertain to sessions from the clients, NAS, and web services, to the server instance.

Counter Description
# Active sessions Number of active sessions on the Microsoft Dynamics NAV Server instance.

An active session is a connection to the Microsoft Dynamics NAV Server instance from a Dynamics NAV client, such as the Microsoft Dynamics NAV Windows client or Microsoft Dynamics NAV Web client, and Web services (OData and SOAP).
Server operations/sec Number of operations that have started on the Microsoft Dynamics NAV Server per second.

An operation is a call to the Microsoft Dynamics NAV Server instance from a Dynamics NAV client to run Dynamics NAV objects.

Note: OData and SOAP requests are not included.
Average server operation time (ms) Average duration of server operations in milliseconds.

SQL Server connection counters

These counters pertain to the connection from the server instance to the SQL Server instance and databases.

Counter Description
# Mounted tenants Number of tenants that are mounted on the Microsoft Dynamics NAV Server instance. This counter is relevant with a multitenant server instance, where tenants are often mounted and dismounted.

# Open connections The current number of open connections from the Microsoft Dynamics NAV Server instance to Dynamics NAV databases on SQL Servers.

The value is always equal to the sum of the # Open tenant connections counter and the # Open application connections counter. -We recommend that you use these counters instead.
# Open application connections Current number of open application connections from the Microsoft Dynamics NAV Server instance to the Dynamics NAV application database on SQL Servers.

Because all connections are to only one application database, you will see failures when the total number of connections for all server instances exceeds the maximum number of connections allowed to the database.
# Open tenant connections Current number of open tenant connections from the Microsoft Dynamics NAV Server instance to Dynamics NAV tenant databases on SQL Servers.

If there are multiple tenant databases, you cannot see the distribution of opened connections per database (or database pool).

With Azure SQL Database, connections are denied if the throttling limit is reached. The limit depends on the database configuration. Be aware that in clusters, other server instances will also have connections to the same database, so the total load on a database requires that you look at multiple server instances.

% Query repositioning rate Percentage of queries that are re-executed when fetching the query result.
Hard throttled connections Number of connections that were hard-throttled.
Soft throttled connections Number of connections that were soft-throttled.
Transient errors Number of transient errors.
Heartbeat time (ms) The time that it takes to complete a single write to a system table. Conceptually, this counter measures the time it takes to call the application database server to update the 'last active' field the dbo.Service Instance table for the Microsoft Dynamics NAV Server instance. Every 30 seconds, the instance writes a record to indicate that the instance is "alive."

You can use this counter to indicate if there is network latency between the Microsoft Dynamics NAV Server and the database.
# Preferred connection total requests Count of the total number of requests to the preferred connection cache. The preferred connection cache contains requests from the SQL connection pool that was last used by a Dynamics NAV user.
% Preferred connection cache hit rate Percentage of hits in the preferred connection cache, compared to the total number of requests.

Data and caching counters

These counters pertain to the data caching on the server instance.

Counter Description
# Calculated fields cache total requests Count of the total number of requests to the calculated fields cache. The calculated fields cache contains the results of CALCFIELDS Function (Record) calls.
% Calculated fields cache hit rate Percentage of hits in the calculated fields cache, compared to the total requests to the calculated fields cache.
# Command cache total requests Count of the total number of requests to the command cache. The command cache contains the results of all SQL commands.
% Command cache hit rate Percentage of hits in the command cache, compared to the total requests to the command cache.
# Primary key cache total requests Count of the total number of requests to the primary key cache. The primary key cache contains the results of requests to get a record by using its primary key.
% Primary key cache hit rate Percentage of hits in the primary key cache, compared to the total requests to the primary key cache.
# Result set cache total requests Count of the total number of requests to the result set cache. The result set cache contains result sets that are returned from SQL Server.
% Result set cache hit rate Percentage of hits in the result set cache, compared to the total requests to the result set cache.

The value also depends on the usage pattern and which parts of the application are is used. For example, the SELECTLATESTVERSION function will clear the cache, which results in a lower hit rate.

In general, reading frequently updated values will lower the hit rate because the cache synchronization across Microsoft Dynamics NAV Server instances will remove stale values, which causes re-reads.
# Rows in all temporary tables Count of number of rows in all temporary tables.

Scheduled task counters

These pertain to tasks that are run by Task Scheduler.

Counter Description
# Available tasks Remaining number of tasks that can potentially run simultaneously before the maximum number of tasks is reached. The value of this counter is the value the Maximum # of tasks counter minus the value of the # Running tasks counter.
# of task errors/sec Number of errors per second that are caused by running tasks. The task are causing errors in C/AL or exceptions on the server instance. If the value is greater than zero for an extended period of time, this typically indicates a failing task that keeps getting rescheduled.
# Running tasks Number of tasks that are currently running on the server instance. The value is limited to the value of the Maximum # of tasks counter.
Average task execution time The average time (in ticks) that tasks have taken to complete. Task execution time is counted regardless of whether the task completed successfully or raised an error.

There is no general rule for what the normal operations level is. To analyze this counter, look for large spikes to identify long-running tasks.

Note: A tick is the smallest unit that the your system uses for time measurements, and it is typically determined by the operating system. For example, in Windows, a single tick represents one hundred nanoseconds, which means that there are 10,000 ticks in a millisecond. Tick durations can differ bewteen systems, so be aware of this fact when comparing absolute values across systems.
Maximum # of tasks The maximum number of tasks that can run simultaneously. This value is defined by the Maximum Concurrent Running Tasks (TaskSchedulerMaxConcurrentRunningTasks) setting in the server instance configuration. Therefore, this value is constant until the server instance setting is changed and the instance is restarted.
Total # Pending tasks The total number of tasks in the shared task list that are waiting to be picked up by server instances connected to this application database. The tasks counted are those that are ready and have been scheduled to run now or earlier and that are not currently running.
Total # Running tasks Total number of tasks in the shared task list that are currently running by any server instance connected to this application database.
Time (ms) since the list of running tasks last had capacity for new tasks The time (ms) since the list of running tasks last had capacity for new tasks.

For more information about task scheduler, see Task Scheduler.

See Also

How to: Set up Performance Counters in Windows Performance Monitor
How to: Create a Data Collector Set From the Microsoft Dynamics NAV Template
Optimizing SQL Server Performance with Microsoft Dynamics NAV