SMB Server 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 SMB shares on that cluster node are receiving I/O traffic from other nodes, and if so, whether/not that transmission is what is taking time and slowing down the user access! This is exactly what the SMB Server Share Performance test helps administrators achieve! For a Coordinator Node, this test auto-discovers the following:

  • SMB shares on the Coordinator Node to which the slave nodes redirect I/O in the File System Redirected IO or Block Level Redirected IO mode;
  • SMB shares (if any) created on the Coordinator Node to which one/more other slave nodes in the cluster send I/O.

For a non-coordinator node, this test auto-discovers the SMB shares (if any) on that node to which other nodes in the cluster send I/O.

The test then monitors the traffic to each SMB server 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 server share on the monitored node

Configurable parameters for the test
  1. Test period - How often should the test be executed
  2. Host - The host for which the test is to be configured.
Measurements reported by the test:
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.