Monitoring NICE DCV Performance and Statistics
Starting with NICE DCV 2023.1 server, you can use Windows Performance Counters to monitor various aspects of the protocol performance and collect the statistics about the NICE DCV sessions and connections.
Tools to Collect Performance Counters:
Performance Monitor (PerfMon):
A Windows-native tool that lets you visualize performance data in real-time or from log files. LogMan:
A command-line tool that can start and stop logging based on specified criteria. TypePerf:
A command-line tool that writes performance data to the command window or to a log file. PowerShell:
Windows scripting language, which can be used to gather and manipulate performance data. Third-party tools: There are several third-party monitoring solutions available that can gather these counters and provide in-depth insights.
DCV Performance counters are grouped in five counter sets.
Counter Sets
NICE DCV server
This counter set contains global statistics about the DCV Server service on the host. It also contains an aggregated variant of many counters that are also available in the other counter sets, providing a way to access the information aggregated over the full lifetime of the server, and with a static path (you don’t have to retrieve session or connection identifiers in order to read the counters in this counter set).
Note
the aggregated instance from one of the other counter sets (e.g. "\DCV Server Connections(_Total)\Sent Bytes)" returns the sum over all active connections, while the global counter is accumulated since the server started, and includes connections that have been closed.
Counter name | Description | Unit | Notes |
---|---|---|---|
Active Sessions |
Number of active sessions on the host |
Count |
|
Total Sessions |
Incrementing number of sessions created on the host, including the session that have been closed |
Count |
|
Active Connections |
Number of active connections to the server |
Count |
|
Total Connections |
Incrementing number of connections to the server, including active, reconnected and disconnected clients |
Count |
|
Idle Disconnections |
Incrementing number of connections that were disconnected because of inactivity |
Count |
|
Receive Rate bits/sec |
Rate in bits per second at which data is received by the server |
Bits/sec |
|
Received Bytes |
Total number of bytes received since the service was started |
Bytes |
|
Send Rate bits/sec |
Rate in bits per second at which data is sent by the server |
Bits/sec |
|
Sent Bytes |
Total number of bytes sent since the service was started |
Bytes |
|
HTTP Download Rate bits/sec |
Bandwidth in bits per second for outgoing HTTP traffic |
Bits/sec |
Client-to-server traffic for file storage is counted in Receive Rate |
HTTP Downloaded Bytes |
Total number of bytes sent over HTTP since the service was started |
Bytes |
Client-to-server traffic for file storage is counted in Received Bytes |
Round-Trip Time ms |
Average round-trip latency between server and clients, in milliseconds |
Milliseconds |
Measured and updated once every 5 seconds |
Minimum Round-Trip Time ms |
Minimum round-trip latency detected since the server started, in milliseconds |
Milliseconds |
Updated once every 5 seconds |
DCV Server Processes
This counter set contains information about the individual NICE DCV processes.
agent_type can be one of: session_agent, system_agent, user_agent
Counters are updated once per second.
Counter name | Description | Unit | Notes |
---|---|---|---|
% Processor Time |
Percentage of processor time used by the process |
Percent |
Percentage is relative to one CPU core (i.e. 100% means the process is hogging one thread). Same as \Process(NAME)\% Processor Time |
Physical Memory Bytes |
Current amount of physical memory used by the process, in bytes |
Bytes |
Same as \Process(NAME)\Working Set |
Virtual Memory Bytes |
Current size of the virtual address space of the process, in bytes |
Bytes |
|
Process Identifier |
Numeric process identifier (PID) |
- |
NICE DCV server sessions
Counters in this set provide information about a single session. There's one instance of this counter set for each created session, whether a user is connected or not.
If the administrator closes a session, the corresponding instance is removed; if the administrator re-creates a session with the same name, all the counters restart from zero.
Counter name | Description | Unit |
---|---|---|
Session Duration sec |
Total number of seconds the session has been open |
Seconds |
Total Pixels |
Number of pixels in the display area, which is the sum of the number of pixels across all the displays in the session |
Pixels |
Display Count |
Number of displays in the session |
Count |
The following counters are the same as the ones in NICE DCV Server counter set, with minor differences in the description:
Counter name | Description |
---|---|
Active Connections |
Number of active connections to the session instance |
Total Connections |
Incrementing number of connections to the session instance, including active, reconnected and disconnected clients |
Idle Disconnections |
Incrementing number of connections to the session instance that were disconnected because of inactivity |
Ungraceful Disconnections |
Incrementing number of connections to the session instance that were disconnected because of an error |
Receive Rate bits/sec |
Rate in bits per second at which data is received within the session |
Received Bytes |
Total number of bytes received since session start |
Send Rate bits/sec |
Rate in bits per second at which data is sent within the session |
Sent Bytes |
Total number of bytes sent since session start |
HTTP Download Rate bits/sec |
Bandwidth in bits per second for outgoing HTTP data within the session |
HTTP Downloaded Bytes |
Total number of bytes sent over HTTP within the session |
Round-Trip Time ms |
Average round-trip latency between server and clients within the session, in milliseconds |
Minimum Round-Trip Time ms |
Minimum round-trip latency detected since the session was established, in milliseconds |
NICE DCV Server Connections
Counters in this set provide information about a single client connection. Counter set instances are created when a client connects to the server and deleted when the client disconnects. The connection_id is a number, and it is only unique within one server session.
Counter name | Description | Unit |
---|---|---|
Connection Duration sec |
Total number of seconds the connection has been open |
Seconds |
The following counters are the same as the ones in “DCV Server” counter set, with minor differences in the description:
Counter name | Description |
---|---|
Receive Rate bits/sec |
Rate in bits per second at which data is received within the connection |
Received Bytes |
Total number of bytes received since the connection was established |
Send Rate bits/sec |
Rate in bits per second at which data is sent within the connection |
Sent Bytes |
Total number of bytes sent since the connection was established |
HTTP Download Rate bits/sec |
Bandwidth in bits per second for outgoing HTTP data within the connection |
HTTP Downloaded Bytes |
Total number of bytes sent over HTTP since the connection was established |
Round-Trip Time ms |
Average round-trip latency for the connection, in milliseconds |
Minimum Round-Trip Time ms |
Minimum round-trip latency detected since the connection was established, in milliseconds |
NICE DCV server channels
Counters in this set provide information about individual channels in a client connection. There can be additional channels for extensions.
Channel names are:
dcv::main
dcv::display
dcv::input
dcv::audio
dcv::filestorage
dcv::clipboard
Incoming filestorage traffic is attributed to the dcv::filestorage
channel.
Outgoing filestorage traffic is included in the HTTP Download counters in DCV Server Connections.
Note
Counters in this set are a subset of the ones in DCV Server Connections.
Counter name | Description |
---|---|
Receive Rate bits/sec |
Rate in bits per second at which data is received via the channel |
Received Bytes |
Total number of bytes received via the channel |
Send Rate bits/sec |
Rate in bits per second at which data is sent via the channel |
Sent Bytes |
Total number of bytes sent via the channel |
NICE DCV Server Imaging
Counters in this set provide information about the subsystems responsible for screen grabbing, encoding and delivery.
Counters in this set are divided in two groups:
For those in the first group, NICE DCV collects one value for each session and publishes it in the
$session_name
instance.For those in the second group, NICE DCV collects one value for each encoder in each session. There are three active encoders:
one full-frame encoder
one tile-based encoder
one lossless encoder
These counters are published in the
$session_name:$encoder_name
instances.
Counter name | Description | Unit | Instance |
---|---|---|---|
Grabbed Frames/sec |
Captured frame rate in frames per second |
Count/second |
session |
Grabbed Frames |
Total number of captured frames since the session started |
Count |
session |
Sent Frames/sec |
Rate of screen frames sent per second to the connected client |
Count/second |
session |
Dropped Frames/sec |
Rate of screen frames that were not sent to the connected client per second |
Count/second |
session |
Display Latency ms |
Average time in milliseconds between frame capture and presentation |
Milliseconds |
session |
Available Bandwidth bits/sec |
Estimated bandwidth available in the connection, in bits per second |
Bits/second |
session |
Encoded Frames/sec |
Rate of screen frames encoded per second |
Count/second |
session:encoder |
Encoding Time ms |
Average time, in milliseconds, used for encoding one sceeen frame |
Milliseconds |
session:encoder |
Encoding Time per Megapixel ms |
Average time, in milliseconds, used to encode one million pixels |
Milliseconds |
session:encoder |
Frame Quality % |
Average frame compression quality, expressed as a percentage |
Percent |
session:encoder |
Frame Compression Ratio % |
Average frame compression ratio, defined as the ratio between the frame size, in bytes, and the size of the compressed frame |
Percent |
session:encoder |