Verification and Monitoring

Verifying client configuration

Type the netsh branchcache show status all command in a Command Prompt window to check client settings after configuration by Group Policy, netsh, or direct registry manipulation.

The command displays:

  • The BranchCache service status

  • The location of the local cache

  • The size of the local cache

  • The status of the firewall rules for the HTTP and WS-Discovery protocols that BranchCache uses

Note

The command searches the BranchCache firewall rule group. If you did not use the BranchCache firewall rule group, and you configured firewall exceptions manually, the command may falsely report misconfiguration.

The following screenshot shows settings on a correctly configured Distributed Cache client:

  

Note

BranchCache is enabled and the client is correctly set to function in Distributed Cache mode.
If the computer is configured in Hosted Cache mode, verify that the computer is correctly provisioned with the fully qualified domain name of the Hosted Cache server. Make sure that this FQDN does not include a protocol prefix (http://).
The BranchCache service is running.
The Content Retrieval URL Reservation, Peer Content Discovery Firewall Rules, and Content Retrieval Firewall Rules are properly enabled, allowing this computer to serve content to other peers on the same subnet.

The following screenshot demonstrates a correctly configured Hosted Cache client:

Verifying the Hosted Cache Server configuration

Type the netsh branchcache show status all command in a Command Prompt window on the Hosted Cache server to display the configuration. The command verifies firewall settings and checks for a valid certificate on the Hosted Cache server.

The following screenshot demonstrates a correctly configured Hosted Cache server:

  

Note

The server is correctly configured to act in Hosted Cache Mode.
The BranchCache service is running.
The computer is provisioned with a certificate that is bound to the BranchCache Hosted Cache URL.
The required firewall rules are enabled.

Debugging certificate issues

The Hosted Cache server must be equipped with a trusted certificate for the Hosted Cache deployment to function correctly.

  • To verify that a certificate is bound to the Hosted Cache URL on the Hosted Cache server, use the netsh http show urlacl command. Verify that a certificate is bound to the following URL: https://+:443/C574AC30-5794-4AEE-B1BB-6651C5315029/.

  • The certificate must have an enhanced key usage that is suitable for server authentication. This property can be inspected by using certificate manager.

  • The subject field of the certificate must match the fully qualified domain name of the computer.

  • The certificate must be associated with a root that is trusted by client computers. If the certificate is not trusted by client computers, an audit failure event on the Hosted Cache client results when it attempts to advertize content to the Hosted Cache server. Look for this event in the Windows Event viewer.

Note

Audit failure events may be disabled by policy on some networks.

Verifying content server configuration

Type the netsh branchcache show status all command in a Command Prompt window to check that the BranchCache feature is installed. If the BranchCache feature is correctly installed, your Web server will function correctly. If the BranchCache feature is not installed, the command will indicate this.

For a file server, follow the steps in the Setting the BranchCache support tag on a file share section previously in this document to ensure that file shares are correctly configured for BranchCache.

Verifying end-to-end deployment with performance counters

After configuring multiple client computers and at least one Web server or file server, test the end-to-end deployment and verify that clients successfully download content from the local cache, each other, or the Hosted Cache server when appropriate.

About server-side identifier generation

A BranchCache-enabled Web server generates identifiers for content dynamically on-demand. When content is requested for the first time, the server computes identifiers as the data is transmitted to the client, and stores these identifiers for subsequent client requests. The server only transmits identifiers describing content the second time content is accessed.

A client computer must receive identifiers from the server computer to cache content. To test a BranchCache server deployment, you must access content three times: one to generate identifiers, a second to download and cache content, and a third to test retrieval from the cache.

It is best to test with three separate BranchCache-enabled client computers. If you test with fewer than three client computers, be sure to clear any application level caches between content accesses (for example, the Internet Explorer® cache). It is also good practice to clear the cache on all client computers by using the netsh branchcache flush command before testing.

Note

BranchCache will only exercise for content of greater than 64KB in size. Restarting the BranchCache service on a Web server results in loss of all identifiers computed to that point.

Calculating BranchCache efficiency with performance counters

Windows performance counters can be used to determine BranchCache efficiency and calculate bandwidth savings.

To determine the bandwidth savings across all client computers that are accessing a Web server or BITS application server

  1. On the Web server or BITS application server, start Windows Performance Monitor (click Start, click Run, type perfmon.msc, and then click OK).

  2. Click Performance, click Monitoring Tools, and then click Performance Monitor to view the Performance Monitor graph.

  3. Right-click the graph display, and choose Add Counters. Expand BranchCache Kernel Mode in the top left pane. Select the following counters: Client Cache Miss Bytes, Server Cache Miss Bytes, and Hypothetical Server Bytes Without Caching and Hash Bytes.

  4. Click Add, and then click OK to add the BranchCache performance counters.

  5. Note the value of the performance counters.

The total savings across all BranchCache-enabled client computers that are accessing this server can be calculated with the following formula:

Total Bytes Saved = Hypothetical Server Bytes Without Caching - Client Cache Miss Bytes - Server Cache Miss Bytes - Hash Bytes

Note

This procedure is only valid for a Web server or BITS application server, and it is not possible for a file server.

To determine the bandwidth savings across all protocols for a client machine in Distributed Cache mode or Hosted Cache mode

  1. On the client computer, start Windows Performance Monitor (click Start, click Run, type perfmon.msc, and then click OK).

  2. Click Performance, click Monitoring Tools, and then click Performance Monitor to view the Performance Monitor graph.

  3. Right-click the graph display, and choose Add Counters. Expand BranchCache in the top left pane. Select the following counters:  Retrieval: Bytes from cache and Retrieval: Bytes from server.

  4. Click Add, and then click OK to add the BranchCache performance counters.

  5. Note the value of the performance counters.

The total savings across all BranchCache-enabled protocols for this computer is the value of the Retrieval: Bytes from cache counter. The BranchCache efficiency for all BranchCache-enabled protocols can be calculated with the following formula:

Savings percentage = Retrieval: Bytes from cache / (Retrieval: Bytes from cache +  Retrieval: Bytes from server)

To determine the bandwidth savings across all protocols and all clients that are configured to use a Hosted Cache server

  1. On the Hosted Cache server, start Windows Performance Monitor (click Start, click Run, type perfmon.msc, and then click OK).

  2. Click Performance, click Monitoring Tools, and then click Performance Monitor to view the Performance Monitor graph.

  3. Right-click the graph display, and choose Add Counters. Expand BranchCache in the top left pane. Select the following counters:  Retrieval: Bytes from cache and Retrieval: Bytes from server.

  4. Click Add, and then click OK to add the BranchCache performance counters.

  5. Note the value of the performance counters.

The total savings across all BranchCache-enabled protocols and all BranchCache-enabled clients that are using this computer is the value of the Retrieval: Bytes from cache counter. The BranchCache efficiency for all BranchCache-enabled protocols and clients can be calculated with the following formula:

Savings percentage = Retrieval: Bytes from cache / (Retrieval: Bytes from cache + Retrieval: Bytes from server)