BranchCache Troubleshooting
You can use the following sections to verify your deployment and troubleshoot BranchCache in the Microsoft Windows® 7 and Windows Server® 2008 R2 operating systems.
Verifying End-to-End Deployment with Performance Counters
After configuring multiple branch office client computers and at least one Web server or file server as a BranchCache content server at the main office, you can 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
All three types of BranchCache content servers generate identifiers for content dynamically when client computers access the content. BranchCache identifiers are also called content information. When content is requested for the first time, the server computes the content information while the actual content is transmitted to the requesting client, and the content server stores the content information for subsequent client requests. The content server only transmits content information the second time content is requested.
A client computer must receive content information from the server computer in order to cache content. To test a BranchCache content server deployment, you must access the same content three times from three different client computers: one time to generate content information, a second time to download and cache content, and a third time 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, and, if you’ve deployed a file server content server, the Offline Files cache). It is also good practice to clear the cache on all client computers by using the Network Shell (netsh) command netsh branchcache flush before testing.
Note
BranchCache functionality is triggered only for content of greater than 64KB in size. Also, if you restart the BranchCache service on a Web content server, all content information that has been computed to that point is deleted. BranchCache then creates new content information for content that is accessed after the restart of the BranchCache service.
Technical Resources
For an example of how to deploy BranchCache distributed cache mode with a Web content server, see the BranchCache Step-by-Step Guide: Demonstrate Distributed Cache Mode in a Test Lab, at http://go.microsoft.com/fwlink/?LinkId=185325. This guide also shows how to configure and use Windows Performance Monitor to verify BranchCache functionality.
This guide is also available in HTML format in the Windows Server 2008 and Windows Server 2008 R2 Technical Library at http://go.microsoft.com/fwlink/?LinkId=193490.
For an example of how to deploy BranchCache hosted cache mode with a file server content server, see the BranchCache Step-by-Step Guide: Demonstrate Hosted Cache Mode in a Test Lab at http://go.microsoft.com/fwlink/?LinkId=193487. This guide also shows how to configure and use Windows Performance Monitor to verify BranchCache functionality.
This guide is also available in HTML format in the Windows Server 2008 and Windows Server 2008 R2 Technical Library at http://go.microsoft.com/fwlink/?LinkId=193488.
For links to additional BranchCache documentation, see BranchCache Documentation.
BranchCache Doesn’t Function
Client performance counters show no bytes coming from the cache when accessing BranchCache enabled servers. Branch office clients can still download content from the servers.
Follow the steps in “Verifying end-to-end deployment with performance counters” earlier in this document. Run the performance monitor on both client computers.
Symptom: BytesAddedToCache does not increase on the first client when accessing the BranchCache-enabled server.
- The client computer may be retrieving content from the Internet Explorer cache. Be sure to clear the IE cache by selecting Internet Options from the Tools menu, and clicking Delete.
- Ensure that BranchCache is enabled on the first client using the netsh branchcache show status command.
- If attempting to access a file share, verify that the latency between the client and server is higher than the minimum threshold.
- Ensure that the BranchCache feature is installed on the server and is enabled for the protocol under test.
- Check that the peerdistsvc server has started on both the client and the server.
- An intermediate proxy may downgrade the outgoing request from HTTP 1.1 to HTTP 1.0.
- If the symptom is specific to file traffic, ensure that the file is not in the transparent cache. Transparent cache is a secondary cache where the file is stored in addition to the BranchCache. Storing the file in the transparent cache enables subsequent reads of the file to be satisfied locally improving end-user response times and savings on WAN bandwidth. To delete transparently cached data, search for Offline Files applet in Control Panel. Click the Disk Usage tab, and then click Delete Temporary Files. Note that this will not clear the BranchCache cache.
- An intermediate proxy may alter the HTTP request coming from the client. Verify that the proxy does not modify the ACCEPT-ENCODING HTTP header.
Note: ISA 2006 may alter this header. To configure ISA 2006 to function correctly with BranchCache, disable the compression filter.
Symptom: BytesAddedToCache does increase on the first client when accessing the BranchCache enabled server. BytesFromCache does not increase on the second client when accessing the BranchCache enabled server. Deployment is Distributed Cache mode.
- Ensure that BranchCache is enabled and that both clients are configured to use the same caching mode using the netsh branchcache show status command.
- Ensure that the correct firewall exceptions are set on both clients using the netsh branchcache show status command.
- Ensure that both clients are connected to the same subnet using the ipconfig command.
- Make sure the client cache is not full using netsh branchcache show status ALL.
Symptom: BytesAddedToCache does increase on the first client when accessing the BranchCache enabled server. BytesFromCache does not increase on the second client when accessing the BranchCache enabled server. Deployment is Hosted Cache mode.
- Ensure that BranchCache is enabled and that both clients are configured to use the same caching mode using the netsh branchcache show status command.
- Verify basic connectivity from both client computers to the Hosted Cache using the ping command.
- Ensure that the correct firewall exceptions are set on both clients using the netsh branchcache show status command.
- Ensure that the correct firewall exceptions are set on the Hosted Cache server using the netsh branchcache show status command.
- Ensure that the certificate is properly installed and bound to port 443 on the Hosted Cache computer.
Symptom: Network shell (Netsh) shows BranchCache firewall rules have not been set, even though they have been configured using Group Policy.
Netsh checks the predefined BranchCache firewall rule group. If you have not enabled the default exceptions defined for BranchCache on Windows 7, Netsh will not correctly report your configuration. This can happen if you defined firewall rules for clients using Group Policy and you also defined the Group Policy object on a computer that is running an operating system older than Windows 7 or Windows Server 2008 R2. Operating systems older than these do not have the BranchCache firewall rule group available.
BranchCache and Client Performance
Symptom: A client computer is running slowly. Is BranchCache at fault?
- Many computers drawing large amounts of content from one client in a short time period may impact desktop performance.
- Use performance monitor to check for high service rates to peers. Examine BytesServedToPeers relative to BytesFromCache and BytesFromServer.
The BranchCache service runs isolated in its own service host. Examine the CPU and memory consumption of the service host process housing the branch caching service. - Sustained high rates of service to peers may be evidence of a configuration problem in the branch office. Check to make sure that the other clients in the branch office are capable of service data.
- Clear the cache on the affected client using the netsh branchcache flush command or reduce the cache size on the affected client.
Application Failures
Symptom: A page fails to load or a share cannot be accessed.
When BranchCache is unable to retrieve data from a peer or from the Hosted Cache, the upper layer protocol will return to the server for content. If a failure occurs in the Branch Caching component, the upper layer protocol should seamlessly download content from the server. No BranchCache misconfiguration or failure should prevent the display of a web page or connection to a share. If a failure does occur, use the Network Diagnostic Framework Diagnose button provided by Windows Explorer or Internet Explorer.
Symptom: The client computer is unable to access the file share even when connected to the server.
- If the client computer is unable to access a file share on the server due to the error Offline (network disconnected), reboot the client computer and access the share again.
- If the client computer is unable to access a file share on the server due to the error Offline (slow connection), delete the temporarily cached data, reboot the computer and access the share. To delete temporarily cached data (the same as the transparent or Offline Files cache described above), do the following:
- Click Start, click Search, and then type Manage offline files. In search results, click Manage offline files. The Offline Files dialog box opens.
- In the Offline Files dialog box, click the Disk Usage tab, and then click Delete temporary files.