kabkabsunshine’s blog

読書メモ、投資のこと、日々の学び

WSUSのBranchCache使用率について

このBlog最後に書いてどんだけたつか思い出せませんが、 たまには書かなきゃなという謎のノルマ感と、最近大変な思いをしてWSUSのBranchCacheと向き合ったので、世の中に同じ悩みを抱えている人がいるかと思い記録しておこうかと。

 

サーバ環境:WindowsServer2016

クライアント環境:Windows10

SCCM実装:なし

クライアント数:数千台

拠点数:数100

 

WSUSのBranchCacheとは

まずWSUSとはWindowsServerの機能でWindowsクライアントOSのWindowsUpdateを一括して制御管理をします。BranchCache は、Windows Server 2008 R2 および Windows 7 オペレーティング システム以降で提供されている帯域幅の最適化機能です。 各クライアントにはキャッシュがあり、それぞれのネットワークでデバイスが要求するコンテンツの代替ソースとして機能します。 Windows Server Update Services (WSUS) および System Center Configuration Manager では、BranchCache を使用して、更新プログラムの展開中のネットワーク帯域幅を最適化することができます。いずれの場合も構成は容易です。 BranchCache には、分散キャッシュ モードとホスト型キャッシュ モードの 2 つの動作モードがあります。

docs.microsoft.com

 

BranchCacheって絶対使われるのか。

ここが問題でした。最初のキャッシュされるクライアントがアップデートファイルとハッシュを保持した時点で二台目以降は確実に同一セグメント内部で折り返してくれると思いきや実はBranchCacheを使わない端末が環境によってはいるということがテスト拠点での実施で判明しました。

MSに問い合わせたところ仕様とのこと、、、、

WS-Discoveryタイムアウト既定値が0.3秒となっておりその待ち時間を越えるとクライアントは諦めてWSUSまでUpdate用のファイルををとりに行ってしまうとのこと。

WS-Discoveryとは

Discovery API は、WS-Discovery プロトコルを使用した Web サービスの動的公開と探索の統合プログラミング モデルを提供します。 これらの API は、サービスがサービス自体を公開し、クライアントが公開されたサービスを発見できるようにします。 

docs.microsoft.com

WS-Discoveryは同一NWセグメント上にマルチキャストで投げられるUDPの通信であり、UDPなので再送を試みません。なので一方的に投げつけて0.3秒たったら諦めるということになります。

このご時世クライアント端末なんてほぼほぼ無線なので0.3秒など容易くタイムアウトするわけでBranchCacheを使用しない動作が出てくるのは当然に思えるのでもう少しなんとかして欲しいというのが正直なところですが我々のような弱小SIerの声はMSに届くわけもなく今ある仕様でできる運用を考えなければならないわけです。

 

チューニングパラメータは?

上記0.3秒のタイムアウト値というのは伸ばせるものか追加問い合わせしたところ、複数レジストリで動的に構成しているとのこと。存在しないレジストリ値の追加を提示され、実施を推奨しないとのこと。

メーカに推奨が欲しくて高い金払って問い合わせしてるんだけどな、、、、

上記値は非公開のパラメータとのことなのでコンプラ的なことと、信憑性もあれなのでここには記載なしとさせてください。(すみません。)

結果我々も本番環境ということもあり推奨されない値を入れることもできず、かつ忙殺され検証もできておらず上記パラメータ変更は行っていないため チューニング方法は未だ不明です。 

 

BranchCache使用率ってどれくらいなのか。

上記からBranchCacheを使わない端末がいることは至極自然なことということがわかりました。 運用する人からしたらFeatureUpdateとかを考えるとWANの帯域を圧迫する以上使用率が気になると思います。なのでさらにMSに指標となる使用率を問い合わせしたところ、想定どおりそのような指標は無いとのことでした。(ま、それはしょうがないか、、、完全に環境に依存しますからね。)

ただテストをなん拠点か進めてみたところ無線LANのNW状況が芳しく無い(拠点端末台数が多くアクセスポイントへの接続の集中と、1セグあたりの動作端末が多いことが予測されるような状況)の場合如実使用率が下がることが判明しました。

悪いところは50%台、端末台数が少なく通信効率が良い拠点は80%-100%台という感じでした。

結論BranchCacheの使用率をあげるにはNW側の無線LAN環境の通信効率をあげるとか、有線接続の端末を増やすとか(今時考え難いですが、、、)そっち側の工夫をする必要がありそうです。

Windows10のFeatureUpdateでは3GBとか4GBの通信が端末一台あたり発生するので今後この通信効率がすごく論点になりそうです。

配信計画については今情報を整理中なのでまた今度。覚えてたら、、、、、