Oh, and just remembered – Event 311 is when the file is too small for 
BranchCache – minimum size is 64k – you CAN lower this value but be careful, 
config in the registry and pretty sure it wouldn’t be supported but I have it 
tweaked down to 4k on my test rig:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\PeerDistKM\Parameters


Cheers

Phil

From: listsad...@lists.myitforum.com [mailto:listsad...@lists.myitforum.com] On 
Behalf Of Phil Wilcock
Sent: 24 January 2015 08:39
To: mssms@lists.myitforum.com
Subject: RE: [mssms] BranchCache not working as expected when serving SCCM 
2012R2 CU3 clients

George,

Welcome to the confusing and crazy world of BranchCache and BITS. Here’s a 
couple of pointers. Rest assured that it can all work pretty effectively once 
you get the hang of things.

Firstly, you need to understand how BranchCache hashes figure in all of this. 
Until a PC has the hash of the segment that it is downloading, it can’t share 
that segment with other peers, and the content won’t even be in the BranchCache 
Cache. So that first download that you see from PC1 will be a non-BranchCache 
enabled download as the hash won’t be available on the server yet. You can get 
the server to generate hashes in advance – on Server 2012 you can use PS but in 
your case you can download our HashiBashi tool which will do the same. - 
http://2pintsoftware.com/products/hashibashi/?portfolioID=10530

If the hash is not pre-created then it is the SECOND PC that does the download 
that will get the hash and therefore be able to share the files.
(All this works much better in SRV2012 where the server sends a 
‘MakeHashRequest’ back in the http header – although BITS is still too dumb to 
act on this even in Win8.1)

BITS event log – also check for Event 4 – which is the end of the Job and tells 
you the proportion of files that came from the server vs local peers.

Network latency – has nothing to do with HTTP downloads, which is what BITS is 
using here.

As far as clients getting content from the server instead of peers – this can 
happen  if all clients try to get the content at the same time.
IF your content has 10 files for instance – SCCM client gets the manifest, but 
then seems to randomize the order in which the files are added to the BITS job.
So this can mean that BITS on PC1 will be attempting to get FILE1 at the same 
time as PC2 is trying to grab FILE10

BITS + BranchCache behaves best (especially with SRV2008 and Win7) if the 
client start times are staggered so that certain clients can get a head start 
on the content. Id an ideal situation you might want to make a collection of 
‘Beachhead’ PC’s that will DL the content first – one at each site.

The Event 311 error is I think nothing to worry about but can’t remember off 
the top of my head – maybe my esteemed colleague Junior can?

Anyway – have a dig around on out site, here’s the FAQ which might help - 
http://2pintsoftware.com/2psfaqs/

Also our free BranchCache reporting is a good way of visualizing exactly which 
client is getting content from the server vs peers.

Good luck – and please feel free to ping me any questions offline if you wish.

Cheers

Phil


Phil Wilcock
2Pint Software
http://2pintsoftware.com





From: listsad...@lists.myitforum.com<mailto:listsad...@lists.myitforum.com> 
[mailto:listsad...@lists.myitforum.com] On Behalf Of George Salmaniw
Sent: 23 January 2015 21:05
To: mssms@lists.myitforum.com<mailto:mssms@lists.myitforum.com>
Subject: [mssms] BranchCache not working as expected when serving SCCM 2012R2 
CU3 clients

Am testing Branch Cache for possible use at remote sites and getting mixed 
results.  Client is Windows 7SP1 fully patched running the SCCM 2012R2 CU3 
client.  The server is 2008R2 running SCCM 2012R2 CU3.  I have four remote test 
sites consisting of anywhere from 2 to 5 test PCs per site.  Branch cache has 
been enable via GPO for test PCs as per MS BranchCache documentation.  Settings 
have been verified via

netsh branchcache show status all

On the server side, BranchCache has been checked under the Distribution Point 
properties: Enable and configure BranchCache for this distribution point



Using the Bits-Client Operational log the standard event order I am seeing is 
as follows:

Event ID 59 - BITS started the CCMDTS Job transfer job
Event ID 203 - The BITS service provided job credentials in response to the 
NEGOTIATE authentication challenge from … for the CCMDTS Job transfer job that 
is associated with the following URL … The credentials for the user were 
accepted.
Event ID 60 - BITS stopped transferring the CCMDTS Job transfer job that is 
associated with the [the file]. The status code is 0x0.

So all looks in order in terms of the file being downloaded.  Within the 
Details of Event ID 60 we can confirm whether peer caching was used by the 
following variables:

peerProtocolFlags – a value of 1 means that peer caching was used to download 
the file; a value of 0 means it was downloaded from the server
bytesTransferredFromPeer – the actual bytes transferred from the peer cache


So here is what I am observing:

I install an application package on PC#1 for the first time at the remote site. 
 The event logs shows a value of 0 for peerProtocolFlags for all event ID 60 
entries
I install the same application package on PC#2.  Theoretically it should be 
pulling the files from peer cache.  What I am seeing are some files are pulled 
from the peer cache, while others are pulled from the server.  QUESTION:  is 
network latency [I have set it to 80msec] checked for each individual file?  If 
so, does that explain why some files are copied from the local cache while 
others are not? If not, what could be causing such behaviour.  My concern is 
that if the PC pulls a large file from the server, that is cached locally on 
the subnet, it defeats the purpose of BranchCache.

I am also seeing on occasion, event ID 311 - The BITS peer transfer with the 
XXX ID for the CCMDTS Job transfer job resulted in the following error: 
0x80040010.  This prevents the transfer from the peer cache, so that it must be 
downloaded from the server.  QUESTION:  I have searched the net is there isn’t 
much information on 311 error, other than 0x80040010 OLE_E_NOT_INPLACEACTIVE 
and find the reference within dcomcnfg.


Needless to say I am getting somewhat frustrated with BranchCache, and really 
need to use it effectively to minimize traffic congestion at remote sites.

Appreciate it if anyone can provide any insight into how to get BranchCache 
working optimally!







Reply via email to