SMB Client Share Performance Test
CSV uses Server Message Block (SMB) protocol to redirect traffic using File System Redirected IO or Block Level Redirected IO to the Coordinator Node. For a non-Coordinator Node to redirect I/O to the Coordinator Node, SMB shares are required on the Coordinator Node. There is a hidden admin share that is created for CSV, shared as ClusterStorage$. This share is created by the cluster to facilitate remote administration. You should use it in the scenarios where you would normally use an admin share on any other volume (such as D$). There are also a couple of hidden shares that are used by the CSV. These shares are used only on the Coordinator Node. Other nodes either do not have these shares or these shares are not used: Each Cluster Shared Volume hosted on a Coordinator Node creates a share with a name that looks like a GUID. This is used by CsvFs (CSV File System) to communicate with the hidden CSV NTFS stack on the Coordinator Node. This share points to the hidden NTFS volume used by CSV. Metadata and the File System Redirected IO are flowing to the Coordinator Node using this share. On the Coordinator Node you also will see a share with the name CSV$. This share is used to forward Block Level Redirected IO to the Coordinator Node. There is only one CSV$ share on every Coordinator Node. Users are not expected to use these shares – they are access-controlled so that only Local System and Failover Cluster Identity user (CLIUSR) have access to the share.
All of these shares are temporary – information about these shares is not in any persistent storage, and when node reboots they will be removed from the Server Service. Cluster takes care of creating the shares every time during CSV start up.
In addition, users can create folders on any node in the cluster and share them with one/more other nodes in the cluster, so that users connecting from such nodes can read from and/or write to the folder at will. Such folders are also called SMB shares.
If a user to a VM in a Hyper-V cluster complains of slowness when accessing the VM, then administrators may want to know if that cluster node is transmitting I/O to a remote SMB share, and if so, whether/not that transmission is what is taking time and slowing down the user access! This is exactly what the SMB Client Share Performance test helps administrators achieve! For a non-coordinator node, this test auto-discovers the following:
-
SMB shares on the Coordinator Node to which that node redirects I/Os in the File System Redirected IO or Block Level Redirected IO mode;
-
SMB shares (if any) created on any node in the cluster, to which the monitored non-coordinator node has access.
For a Coordinator Node, this test auto-discovers only the SMB shares (if any) created on other nodes in the cluster to which the Coordinator Node sends I/O.
The test then monitors the traffic to each SMB client share and reveals which share is seeing maximum traffic and how latent the transmission is.
Target of the test : A Hyper-V / Hyper-V VDI server
Agent executing the test : An internal agent
Output of the test : One set of results will be reported for every SMB client share to which the monitored node sends I/O
Parameter | Description |
---|---|
Test period |
This indicates how often should the test be executed. |
Host |
Specify the HOST for which this test is to be configured. |
Measurement | Description | Measurement Unit | Interpretation |
---|---|---|---|
Read throughput |
Indicates the rate at which data is being read from this share. |
Kbps |
|
Write throughput |
Indicates the rate at which data is being written to this share. |
Kbps |
|
Throughput |
Indicates the rate at which data is being read from and written to this share. |
Kbps |
The value of this measure is the sum of the values of the Read throughput and Write throughput measures. This is a good indicator of the level of traffic to a share. By comparing the value of this measure across shares, you can identify the share that is seeing the maximum traffic. If this max value is abnormally high for a share, you may want to investigate the reasons for the same. |
Read rate |
Indicates the rate at which read requests are being sent to this share. |
Requests/Sec |
|
Write rate |
Indicates the rate at which write requests are being sent to this share. |
Requests/Sec |
|
IOPS |
Indicates the rate at which read and write requests are being sent to this share. |
Requests/Sec |
The value of this measure is the sum of the values of the Read rate and Write rate measures. This is a good indicator of the level of traffic to a share. By comparing the value of this measure across shares, you can identify the share that is seeing the maximum traffic. If this max value is abnormally high for a share, you may want to investigate the reasons for the same. |
Read latency |
Indicates the average latency between when a read request is sent to this share and when a response is received from this share. |
Secs |
Ideally, the value of this measure should be low. |
Write latency |
Indicates the average latency between when a write request is sent to this share and when a response is received from this share. |
Secs |
Ideally, the value of this measure should be low. |
Latency |
Indicates the average latency of both read and write operations performed by this share. |
Secs |
A low value is desired for this measure. A consistent rise in the value of the measure is an indicator of a processing bottleneck on the share. The value of this measure is the sum of the values of the Read latency and Write latency measures. |
Read IO |
Indicates the average number of bytes read from this share. |
Number |
|
Write IO |
Indicates the average number of bytes written to this share. |
Number |
|
IO reads and writes |
Indicates the average number of bytes read from and written to this share. |
Number |
The value of this measure is the sum of the values of the Read IO and Write IO measures. This is a good indicator of the workload of a share. |
Read queue length |
Indicates the count of read operations that are currently outstanding on this share. |
Number |
|
Write queue length |
Indicates the count of write operations that are currently outstanding on this share. |
Number |
|
Queue length |
Indicates the count of read and write operations that are currently outstanding on this share. |
Number |
The value of this measure is the sum of the values of the Read queue length and Write queue length measures. A zero value is desired for this measure. A consistent increase in the value of this measure is a cause for concern, as it indicates that the share is having difficulty processing I/O requests. |