分散キャッシュ サービスを管理する (SharePoint Server)

適用対象:yes-img-13 2013yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

SharePoint Server で、分散キャッシュ サービスに関する管理および運用タスクを実行するには、管理者は特定の規則的な手順を実行する必要があります。 この記事では、分散キャッシュ サービスに関するいくつかの管理および運用タスクを実行する方法について説明します。

重要

この記事に示されている手順に従わない場合、分散キャッシュ サービスは機能しない状態または回復不可能な状態になる可能性があります。 極端なシナリオでは、サーバー ファームの再構築が必要になる場合があります。 SharePoint Server 2019、2016、2013 の場合、分散キャッシュは前提条件として Windows Server AppFabric に依存します。 [ AppFabric キャッシュ サービス] を [ コントロール パネル] の [ 管理ツール] の [ サービス] ウィンドウから管理しないでください。 [ スタート] メニューで、[ AppFabric for Windows Server] という名前のフォルダーに含まれるアプリケーションを使用しないでください。 SharePoint 分散キャッシュを使用した AppFabric のセキュリティの追加はサポートされていません。 SharePoint Server サブスクリプション エディション、別の Windows Server AppFabric 製品は非推奨となり、テクノロジは SharePoint 内に内部的に統合されました。

重要

$ 記号が含まれているサービス アカウント名を使用しないでください。

分散キャッシュ サービスの PowerShell コマンドレットの一覧

SharePoint Server PowerShell では、次の PowerShell コマンドレットを使用できるようになりました。

SharePoint Server サブスクリプション エディション コマンドレット APP Fabric コマンドレット 説明
New-SPCache New-Cache クラスターの実行時に、新しい名前付きキャッシュを作成します。
Get-SPCache Get-Cache クラスター内のすべてのキャッシュとリージョン、および各リージョンが存在するキャッシュ ホストを一覧表示します。 パラメーターがないと、すべてのクラスター キャッシュとそのホストリージョンの詳細が返されます。 Hostname パラメーターと CachePort パラメーターが指定されている場合、キャッシュとリージョンの詳細は、指定されたホストに対してのみ返されます。
Get-SPCacheStatistics Get-CacheStatistics キャッシュまたはキャッシュ ホストの統計を返します。
Get-SPCacheHost Get-CacheHost キャッシュ クラスターのメンバーであるすべてのキャッシュ ホスト サービスを一覧表示します。
Start-SPCacheCluster Start-CacheCluster クラスター内のすべてのキャッシュ ホストでキャッシュ サービスを開始します。 最初にリード ホストが開始されます。
Stop-SPCacheCluster Stop-CacheCluster クラスター内のすべてのキャッシュ ホストでキャッシュ サービスを停止します。
Import-SPCacheClusterConfig Import-CacheClusterConfig XML ファイルからキャッシュ クラスター構成の詳細をインポートします。
Export-SPCacheClusterConfig Export-CacheClusterConfig キャッシュ クラスター構成を XML ファイルにエクスポートします。
Get-SPCacheClusterHealth Get-CacheClusterHealth キャッシュ クラスター内のすべての名前付きキャッシュの正常性統計を返します。 これには、まだ割り当てられていないものも含まれます。
Use-SPCacheCluster Use-CacheCluster PowerShell セッションのコンテキストを特定のキャッシュ クラスターに設定します。
Get-SPCacheHostConfig Get-CacheHostConfig キャッシュ クラスター内のキャッシュ ホスト構成情報を取得します。
Get-SPCacheClusterInfo Get-CacheClusterInfo ファーム内のキャッシュ クラスター情報を取得します。
Set-SPCacheClusterSecurity Set-CacheClusterSecurity キャッシュ クラスターのセキュリティ プロパティを設定します。

分散キャッシュ サービスを開始および終了する

メンテナンス タスクおよび運用タスクを実行する管理者は、分散キャッシュ サービスの開始および停止が必要になる場合があります。 そのタスクのいくつかを以下に示します。

  • インストール時にサーバー ファームの既定の構成を変更する。 インストール時にすべての SharePoint サーバーで分散キャッシュ サービスが開始されます。 管理者は、ファーム内の一部のサーバーで分散キャッシュ サービスを停止しなければならない場合があります。

  • サーバーを更新する。SharePoint Server ファームに分散キャッシュ サーバーが 1 つのみ存在する。

キャッシュを停止すると、結果的に、部分的なデータの損失が発生します。 フィード キャッシュは分散キャッシュ サービスに依存します。 タグとドキュメント アクティビティはフィード キャッシュにのみ保存されます。 タグとドキュメント アクティビティはコンテンツ データベースに保持されません。 分散キャッシュ サービスが停止すると、タグとドキュメント アクティビティは失われます。 分散キャッシュ サービスが開始されると、フィード キャッシュの再作成のタイマー ジョブが実行されるときに、再作成が実行されます。 タグとドキュメント アクティビティを維持する 1 つの方法は、この記事の後半の「PowerShell スクリプトを使用して分散キャッシュ サービスの正常なシャットダウンを実行する」で説明されている方法を使用することです。 分散キャッシュ サービスの正常なシャットダウンの方法を使用すると、分散キャッシュ サービスが停止する前にすべてのキャッシュ データが 1 つのサーバーから別のサーバーに移動します。

注:

キャッシュ ホストがキャッシュ クラスターの一部になっている場合は、ここで説明されている方法で分散キャッシュ サービスを開始または停止しないでください。 代わりに、この記事の後半の「分散キャッシュ クラスターでサーバーを追加または削除する」を参照してください。

サーバーの全体管理を使用して、分散キャッシュ サービスを開始および停止するには

  1. サーバーの全体管理で、[ アプリケーション構成の管理] をクリックします。

  2. [ サービス アプリケーション] で、[ サーバーのサービスの管理] をクリックします。

  3. [ サーバーのサービス] ページで、[ Distributed Cache] サービスを見つけます。

  4. 分散キャッシュ サービスが開始されており、サービスを停止する場合は、[ 処理] の下の [ 停止] をクリックします。 分散キャッシュ サービスが停止しており、サービスを開始する場合は、[ 処理] の下の [ 開始] をクリックします。

SharePoint 管理シェルを使用して分散キャッシュ サービスを開始するには

SharePoint 管理シェル コマンド プロンプトで、次のコマンドを実行します。

$instanceName ="SPDistributedCacheService Name=SPCache"
$serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername}
$serviceInstance.Provision()

SharePoint 管理シェルを使用して分散キャッシュ サービスを停止するには

SharePoint 管理シェル コマンド プロンプトで、次のコマンドを実行します。

$instanceName ="SPDistributedCacheService Name=SPCache"
$serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername}
$serviceInstance.Unprovision()

分散キャッシュ サービスのメモリ割り当てを変更する

SharePoint Server をインストールすると、サーバーの総物理メモリの 10 パーセントが分散キャッシュ サービスに割り当てられます。 分散キャッシュ サービスは、メモリ割り当ての半分をデータ ストレージ用に使用し (キャッシュ サイズとも呼ばれる)、メモリ割り当てのもう半分はメモリ管理オーバーヘッド用に使用されます。 キャッシュされたデータが増大すると、分散キャッシュ サービスは、割り当てられた 10 パーセントのメモリをすべて使用します。

以下のような状況では、分散キャッシュ サービスのメモリ割り当てを増やす必要があります。

  • サーバーに物理メモリを追加する場合。 分散キャッシュ サービスでは 10% のメモリ割り当てが自動的に再計算されないため、サーバー上の物理メモリの合計を増やす場合は、分散キャッシュ サービスのメモリ割り当てを手動で増やす必要があります。

  • サーバー ファームに専用の分散キャッシュ サーバーがある場合。 以下の方法を使用して、分散キャッシュ サービスに割り当てることができるメモリの量を計算します。

    1. サーバーの総物理メモリを確認します。 この例では、サーバーで使用可能な総物理メモリとして 16 GB を使用します。

    2. キャッシュ ホストで実行される他のプロセスおよびサービス用に 2 GB のメモリを確保します。 たとえば、16 GB - 2 GB = 14 GB になります。 この残りのメモリが分散キャッシュ サービスに割り当てられます。

    3. 残りのメモリの半分を MB に変換します。 たとえば、14 GB/2 = 7 GB、つまり 7168 MB になります。 これが、分散キャッシュ サービスのキャッシュ サイズです。

    4. 以下の手順を使用して、メモリ割り当てを適切に更新します。

分散キャッシュのメモリ割り当てを変更する

以下の手順を使用して、分散キャッシュ サービスのキャッシュ サイズのメモリ割り当てを再構成します。

  1. (省略可能) サーバーにおける分散キャッシュ サービスの現在のメモリ割り当てを確認するには、SharePoint 管理シェル コマンド プロンプトで次のコマンドを実行します。

    Use-SPCacheCluster
    Get-SPCacheHostConfig -HostName $Env:ComputerName
    

    ここで、

    • ComputerName は、SharePoint 管理シェル コマンドレットを実行するサーバーのコンピューター名です。
  2. すべてのキャッシュ ホストで分散キャッシュ サービスを停止します。 分散キャッシュ サービスを停止するには、全体管理の [ サーバーのサービス] で、ファームのすべてのキャッシュ ホスト上の分散キャッシュ サービスを [ 停止] します。

  3. 分散キャッシュ サービスのキャッシュ サイズを再構成するには、SharePoint 管理シェル コマンド プロンプトで、いずれかのキャッシュ ホストについて次のコマンドを 1 回だけ実行します。

    Update-SPDistributedCacheSize -CacheSizeInMB CacheSize
    

    ここで、

    • CacheSize は、キャッシュ サイズのメモリ割り当て (MB) です。 上の例で、16 GB の総メモリを持つサーバーのキャッシュ サイズは、7168 MB に計算されました。
  4. すべてのキャッシュ ホストで分散キャッシュ サービスを再起動します。 分散キャッシュ サービスを再起動するには、全体管理の [サーバーのサービス] で、ファーム内のすべてのキャッシュ ホストの分散キャッシュ サービスを [開始] します。

分散キャッシュ クラスターでサーバーを追加または削除する

管理者は、キャッシュ クラスターにサーバーを追加または削除したり、キャッシュ クラスターからサーバーを削除したり、サーバーで操作タスクやメンテナンス タスクを実行したり、キャッシュ クラスターにサーバーを再参加または追加したりできます。 サーバーを削除すると、分散キャッシュ サービスが停止し、サーバーから登録解除されます。 分散キャッシュ サービスの登録を解除すると、管理者はサーバーの全体管理の [ サーバー上のサービス ] ページに分散キャッシュ サービスが表示されません。 同様に、サーバーが追加されると、分散キャッシュ サービスが登録され、サーバー上で開始されます。 分散キャッシュ サービスを登録すると、管理者はサーバーの全体管理の [ サーバー上のサービス ] ページに分散キャッシュ サービスが表示されます。

以下の手順を使用して、サーバーをキャッシュ クラスターに追加したりキャッシュ クラスターから削除したりします。 以下の SharePoint 管理シェル コマンドレットを、追加または削除されるサーバーで実行します。

注:

以下の手順を実行する前に、ファイアウォールが ICMP (ICMPv4) の受信トラフィックを許可していることを確認してください。 詳細については、「ファイアウォール構成の考慮事項」を参照してください。

サーバーをキャッシュ クラスターに追加し、SharePoint 管理シェルを使用して分散キャッシュ サービスを開始する

SharePoint 管理シェル コマンド プロンプトで、次のコマンドを実行します。

Add-SPDistributedCacheServiceInstance

SharePoint 管理シェルを使用してキャッシュ クラスターからサーバーを削除する

SharePoint 管理シェル コマンド プロンプトで、次のコマンドを実行します。

Remove-SPDistributedCacheServiceInstance

重要

この手順を実行すると、キャッシュ サービスが停止し、保持されていないキャッシュ データが失われます。 キャッシュされたデータを保持する場合は、次のセクションで記載されている正常なシャット ダウン手順を使用します。

PowerShell スクリプトを使用して分散キャッシュ サービスの正常なシャットダウンを実行する

SharePoint Server ファームでは、1 つ以上のキャッシュ ホストが分散キャッシュ サービスを実行するときにキャッシュ クラスターが存在します。 SharePoint Server ファームには 1 つのキャッシュが存在し、キャッシュはキャッシュ クラスターにまたがる。 管理者は、サーバーに更新プログラムを適用する際に、キャッシュされたコンテンツを別のキャッシュ ホストに移動する必要がある場合があります。 キャッシュされたコンテンツの移動に関連するデータ損失を防ぐには、次の手順で PowerShell スクリプトを使用してサーバーを正常にシャットダウンする必要があります。 正常なシャットダウン手順を実行すると、正常なシャットダウン手順が実行されるキャッシュ ホストからすべてのキャッシュ データがファーム内の別のキャッシュ ホストに転送されます。 転送処理の実行には、キャッシュに存在するアイテムの数に応じて 15 分以上かかります。

PowerShell スクリプトを使用して分散キャッシュの正常なシャットダウンを実行するには

キャッシュされたコンテンツを別のキャッシュ ホストに移動するため、次の PowerShell スクリプトを使用して分散キャッシュ サーバーの正常なシャットダウンを実行します。 シャットダウンする正しいノードを指定し、必要に応じてスクリプトを変更して、organizationの正しいパラメーターに名前を付けます。

注:

正常なシャット ダウンを実行するために PowerShell スクリプトを以下の手順で使用する場合は、キャッシュ クラスターからキャッシュ ホストを削除する必要はありません。

注:

SharePoint Server サブスクリプション エディションでは、正常なシャットダウンのためにスクリプトを実行psしないでください。 代わりに、 Stop-SPDistributedCacheServiceInstance とパラメーターを指定 -Graceful して実行します。

  1. 次の最小要件を満たしていることを確認します:

  2. 以下の変数の宣言をコピーし、メモ帳などのテキスト エディターに貼り付けます。 organizationに固有のパラメーター値を設定します。 ファイルを保存し、 という名前を付けます GracefulShutdown.ps1

    注:

    別のファイル名を使用できますが、ファイルを ANSI でエンコードされたテキスト ファイルとして拡張子 .ps1を付けて保存する必要があります。

    ## Settings you may want to change for your scenario ##
    $startTime = Get-Date
    $currentTime = $startTime
    $elapsedTime = $currentTime - $startTime
    $timeOut = 900
    Use-CacheCluster
    try
    {
        Write-Host "Shutting down distributed cache host."
     $hostInfo = Stop-CacheHost -Graceful -CachePort 22233 -ComputerName sp2016App.contoso.com
     while($elapsedTime.TotalSeconds -le $timeOut-and $hostInfo.Status -ne 'Down')
     {
         Write-Host "Host Status : [$($hostInfo.Status)]"
         Start-Sleep(5)
         $currentTime = Get-Date
         $elapsedTime = $currentTime - $startTime
         $hostInfo = Get-CacheHost -HostName SP2016app.contoso.com -CachePort 22233
     }
     Write-Host "Stopping distributed cache host was successful. Updating Service status in SharePoint."
     Stop-SPDistributedCacheServiceInstance
     Write-Host "To start service, please use Central Administration site."
    }
    catch [System.Exception]
    {
     Write-Host "Unable to stop cache host within 15 minutes." 
    }
    

    ここで sp2016App.contoso.com は、使用する分散キャッシュ サーバーのコンピューター ドメイン名です。

  3. SharePoint 管理シェル を開きます。

  4. ファイルを保存したディレクトリに移動します。

  5. PowerShell コマンド プロンプトで、次のコマンドを入力します。

    ./GracefulShutdown.ps1
    

    PowerShell スクリプトと.ps1ファイルの詳細については、「Windows PowerShell スクリプトの実行」を参照してください。

サービス アカウントを変更する

サーバー ファームが最初に構成されると、サーバー ファーム アカウントが AppFabric キャッシュ サービス/SharePoint Caching Service のサービス アカウントとして設定されます。 分散キャッシュ サービスは、AppFabric キャッシュ サービス/SharePoint キャッシュ サービスによって異なります。 AppFabric キャッシュ サービス/SharePoint Caching Service のサービス アカウントをマネージド アカウントに変更するには:

サービスを選択して、サービス アカウントを変更します。

  1. 管理アカウントを作成します。

  2. SharePoint キャッシュ サービスで、マネージド アカウントをサービス アカウントとして設定します。 SharePoint 管理シェル コマンド プロンプトで、次のコマンドを実行します。

    $farm = Get-SPFarm
    $cacheService = $farm.Services | where {$_.Name -eq "SPCache"}
    $accnt = Get-SPManagedAccount -Identity domain_name\user_name
    $cacheService.ProcessIdentity.CurrentIdentityType = "SpecificUser"
    $cacheService.ProcessIdentity.ManagedAccount = $accnt
    $cacheService.ProcessIdentity.Update() 
    $cacheService.ProcessIdentity.Deploy()
    

    ここで、Domain_name\user_nameは、SharePoint マネージド アカウントのドメイン名とユーザー名です。

PowerShell スクリプトを使用して分散キャッシュ サービスを微調整する

監視

分散キャッシュ サーバーのパフォーマンス カウンターを監視して、キャッシュのパフォーマンスの問題について理解を深めることができます。 一般的に問題のトラブルシューティングに役立つ カウンター には、次のようなものがあります。

  1. %cpu がキャッシュ サービスによって使用されます。

  2. キャッシュ サービスによって GC に費やされた %time。

  3. キャッシュミスの総数/秒 - ここでの値が大きいと、キャッシュからデータをフェッチできないため、アプリケーションのパフォーマンスが低下する可能性があることを示す可能性があります。 これには、キャッシュからのアイテムの削除や期限切れなどが考えられます。

  4. 合計オブジェクト数 - キャッシュ内の項目の数を示します。 オブジェクト数が大幅に減少すると、削除または有効期限が発生している可能性があります。

  5. クライアントの総要求数/秒 - このカウンターは、アプリケーションからキャッシュ サーバーで生成されている負荷の量を把握するのに役立ちます。 ここでの値が低いということは、通常、キャッシュ サーバーの外部 (アプリケーションやネットワークなど) の外部にある種のボトルネックを意味するため、キャッシュ サーバーに負荷がほとんどかっています。

  6. 削除されたオブジェクトの合計数 - キャッシュ サーバーが常に項目を削除してキャッシュ内の新しいオブジェクト用のスペースを作る場合は、通常、アプリケーションのデータセットを保持するためにキャッシュ サーバーにさらに多くのメモリが必要であることを示します。

  7. 失敗例外の合計/秒と再試行の合計例外数/秒。

MaxConnectionsToServer の分散キャッシュ サービス設定は、多くの場合、ホスト コンピューターで使用されている CPU 数に基づいて調整されます。 たとえば、複数のコアを使用し、 MaxConnectionsToServer 設定を同じ数の CPU に設定すると、多くの場合、コンピューターはメモリを使用しすぎてフリーズします。 DistributedLogonTokenCacheDistributedViewStateCache の設定値を調整する場合にも同様の問題が生じます。 既定の設定は 20 ミリ秒ですが、多くの場合、20 ミリ秒の設定でトークン キャッシュが発生しない場合は例外が見つかります。 次の PowerShell スクリプトを使用して、SharePoint Server 2016 および SharePoint Server 2013 の最大接続とタイムアウトの設定を変更します。

PowerShell スクリプトを使用して分散キャッシュ サービスを微調整するには

  1. 次の最小要件を満たしていることを確認します。

  2. 以下の変数の宣言をコピーし、メモ帳などのテキスト エディターに貼り付けます。 organizationに固有のパラメーター値を設定します。 ファイルを保存し、 という名前を付けます MaxConnections.ps1

    注:

    別のファイル名を使用できますが、ファイルを ANSI でエンコードされたテキスト ファイルとして拡張子 .ps1を付けて保存する必要があります。

    PowerShell スクリプトのSharePoint Server サブスクリプション エディションとSharePoint Server 2019

    Add-PSSnapin Microsoft.Sharepoint.Powershell -ea 0
    
    #DistributedLogonTokenCache
    $DLTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedLogonTokenCache
    $DLTC.MaxConnectionsToServer = 1
    $DLTC.requestTimeout = "3000"
    $DLTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedLogonTokenCache $DLTC
    
    #DistributedViewStateCache
    $DVSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedViewStateCache
    $DVSC.MaxConnectionsToServer = 1
    $DVSC.requestTimeout = "3000"
    $DVSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedViewStateCache $DVSC
    
    #DistributedAccessCache
    $DAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedAccessCache
    $DAC.MaxConnectionsToServer = 1
    $DAC.requestTimeout = "3000"
    $DAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedAccessCache $DAC
    
    #DistributedActivityFeedCache
    $DAF = Get-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedCache
    $DAF.MaxConnectionsToServer = 1
    $DAF.requestTimeout = "3000"
    $DAF.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedCache $DAF
    
    #DistributedActivityFeedLMTCache
    $DAFC = Get-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedLMTCache
    $DAFC.MaxConnectionsToServer = 1
    $DAFC.requestTimeout = "3000"
    $DAFC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedLMTCache $DAFC
    
    #DistributedBouncerCache
    $DBC = Get-SPDistributedCacheClientSetting -ContainerType DistributedBouncerCache
    $DBC.MaxConnectionsToServer = 1
    $DBC.requestTimeout = "3000"
    $DBC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedBouncerCache $DBC
    
    #DistributedDefaultCache
    $DDC = Get-SPDistributedCacheClientSetting -ContainerType DistributedDefaultCache
    $DDC.MaxConnectionsToServer = 1
    $DDC.requestTimeout = "3000"
    $DDC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedDefaultCache $DDC
    
    #DistributedSearchCache
    $DSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSearchCache
    $DSC.MaxConnectionsToServer = 1
    $DSC.requestTimeout = "3000"
    $DSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSearchCache $DSC
    
    #DistributedSecurityTrimmingCache
    $DTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSecurityTrimmingCache
    $DTC.MaxConnectionsToServer = 1
    $DTC.requestTimeout = "3000"
    $DTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSecurityTrimmingCache $DTC
    
    #DistributedServerToAppServerAccessTokenCache
    $DSTAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedServerToAppServerAccessTokenCache
    $DSTAC.MaxConnectionsToServer = 1
    $DSTAC.requestTimeout = "3000"
    $DSTAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedServerToAppServerAccessTokenCache $DSTAC
    
    #DistributedFileLockThrottlerCache
    $DFLTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedFileLockThrottlerCache
    $DFLTC.MaxConnectionsToServer = 1
    $DFLTC.requestTimeout = "3000"
    $DFLTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedFileLockThrottlerCache $DFLTC
    
    #DistributedSharedWithUserCache
    $DSWUC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSharedWithUserCache
    $DSWUC.MaxConnectionsToServer = 1
    $DSWUC.requestTimeout = "3000"
    $DSWUC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSharedWithUserCache $DSWUC
    
    #DistributedUnifiedGroupsCache
    $DUGC = Get-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedGroupsCache
    $DUGC.MaxConnectionsToServer = 1
    $DUGC.requestTimeout = "3000"
    $DUGC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedGroupsCache $DUGC 
    
    #DistributedResourceTallyCache
    $DRTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedResourceTallyCache
    $DRTC.MaxConnectionsToServer = 1
    $DRTC.requestTimeout = "3000"
    $DRTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedResourceTallyCache $DRTC
    
    #DistributedHealthScoreCache
    $DHSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedHealthScoreCache
    $DHSC.MaxConnectionsToServer = 1
    $DHSC.requestTimeout = "3000"
    $DHSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedHealthScoreCache $DHSC  
    
    #DistributedDbLevelFailoverCache
    $DDBFC = Get-SPDistributedCacheClientSetting -ContainerType DistributedDbLevelFailoverCache
    $DDBFC.MaxConnectionsToServer = 1
    $DDBFC.requestTimeout = "3000"
    $DDBFC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedDbLevelFailoverCache $DDBFC
    
    #DistributedEdgeHeaderCache
    $DEHC = Get-SPDistributedCacheClientSetting -ContainerType DistributedEdgeHeaderCache
    $DEHC.MaxConnectionsToServer = 1
    $DEHC.requestTimeout = "3000"
    $DEHC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedEdgeHeaderCache $DEHC
    
    #DistributedFileStorePerformanceTraceCache
    $DFSPTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedFileStorePerformanceTraceCache
    $DFSPTC.MaxConnectionsToServer = 1
    $DFSPTC.requestTimeout = "3000"
    $DFSPTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedFileStorePerformanceTraceCache $DFSPTC
    
    #DistributedSPAbsBlobCache
    $DSPABSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSPAbsBlobCache
    $DSPABSC.MaxConnectionsToServer = 1
    $DSPABSC.requestTimeout = "3000"
    $DSPABSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSPAbsBlobCache $DSPABSC
    
    #DistributedSPCertificateValidatorCache
    $DSPCVC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSPCertificateValidatorCache
    $DSPCVC.MaxConnectionsToServer = 1
    $DSPCVC.requestTimeout = "3000"
    $DSPCVC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSPCertificateValidatorCache $DSPCVC
    
    #DistributedSPOAuthTokenCache
    $DSPOATC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSPOAuthTokenCache
    $DSPOATC.MaxConnectionsToServer = 1
    $DSPOATC.requestTimeout = "3000"
    $DSPOATC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSPOAuthTokenCache $DSPOATC
    
    #DistributedStopgapCache
    $DSGC = Get-SPDistributedCacheClientSetting -ContainerType DistributedStopgapCache
    $DSGC.MaxConnectionsToServer = 1
    $DSGC.requestTimeout = "3000"
    $DSGC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedStopgapCache $DSGC
    
    #DistributedUnifiedAppsCache
    $DUAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedAppsCache
    $DUAC.MaxConnectionsToServer = 1
    $DUAC.requestTimeout = "3000"
    $DUAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedAppsCache $DUAC
    
    #DistributedUnifiedAuditCache
    $DUAuC = Get-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedAuditCache
    $DUAuC.MaxConnectionsToServer = 1
    $DUAuC.requestTimeout = "3000"
    $DUAuC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedAuditCache $DUAuC
    

    SharePoint Server 2016 PowerShell スクリプト

    Add-PSSnapin Microsoft.Sharepoint.Powershell -ea 0
    
    #DistributedLogonTokenCache
    $DLTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedLogonTokenCache
    $DLTC.MaxConnectionsToServer = 1
    $DLTC.requestTimeout = "3000"
    $DLTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedLogonTokenCache $DLTC
    
    #DistributedViewStateCache
    $DVSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedViewStateCache
    $DVSC.MaxConnectionsToServer = 1
    $DVSC.requestTimeout = "3000"
    $DVSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedViewStateCache $DVSC
    
    #DistributedAccessCache
    $DAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedAccessCache
    $DAC.MaxConnectionsToServer = 1
    $DAC.requestTimeout = "3000"
    $DAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedAccessCache $DAC
    
    #DistributedActivityFeedCache
    $DAF = Get-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedCache
    $DAF.MaxConnectionsToServer = 1
    $DAF.requestTimeout = "3000"
    $DAF.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedCache $DAF
    
    #DistributedActivityFeedLMTCache
    $DAFC = Get-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedLMTCache
    $DAFC.MaxConnectionsToServer = 1
    $DAFC.requestTimeout = "3000"
    $DAFC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedLMTCache $DAFC
    
    #DistributedBouncerCache
    $DBC = Get-SPDistributedCacheClientSetting -ContainerType DistributedBouncerCache
    $DBC.MaxConnectionsToServer = 1
    $DBC.requestTimeout = "3000"
    $DBC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedBouncerCache $DBC
    
    #DistributedDefaultCache
    $DDC = Get-SPDistributedCacheClientSetting -ContainerType DistributedDefaultCache
    $DDC.MaxConnectionsToServer = 1
    $DDC.requestTimeout = "3000"
    $DDC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedDefaultCache $DDC
    
    #DistributedSearchCache
    $DSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSearchCache
    $DSC.MaxConnectionsToServer = 1
    $DSC.requestTimeout = "3000"
    $DSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSearchCache $DSC
    
    #DistributedSecurityTrimmingCache
    $DTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSecurityTrimmingCache
    $DTC.MaxConnectionsToServer = 1
    $DTC.requestTimeout = "3000"
    $DTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSecurityTrimmingCache $DTC
    
    #DistributedServerToAppServerAccessTokenCache
    $DSTAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedServerToAppServerAccessTokenCache
    $DSTAC.MaxConnectionsToServer = 1
    $DSTAC.requestTimeout = "3000"
    $DSTAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedServerToAppServerAccessTokenCache $DSTAC
    
    #DistributedFileLockThrottlerCache
    $DFLTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedFileLockThrottlerCache
    $DFLTC.MaxConnectionsToServer = 1
    $DFLTC.requestTimeout = "3000"
    $DFLTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedFileLockThrottlerCache $DFLTC
    
    #DistributedSharedWithUserCache
    $DSWUC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSharedWithUserCache
    $DSWUC.MaxConnectionsToServer = 1
    $DSWUC.requestTimeout = "3000"
    $DSWUC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSharedWithUserCache $DSWUC
    
    #DistributedUnifiedGroupsCache
    $DUGC = Get-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedGroupsCache
    $DUGC.MaxConnectionsToServer = 1
    $DUGC.requestTimeout = "3000"
    $DUGC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedUnifiedGroupsCache $DUGC 
    
    #DistributedResourceTallyCache
    $DRTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedResourceTallyCache
    $DRTC.MaxConnectionsToServer = 1
    $DRTC.requestTimeout = "3000"
    $DRTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedResourceTallyCache $DRTC
    
    #DistributedHealthScoreCache
    $DHSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedHealthScoreCache
    $DHSC.MaxConnectionsToServer = 1
    $DHSC.requestTimeout = "3000"
    $DHSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedHealthScoreCache $DHSC  
    

    SharePoint Server 2013 PowerShell スクリプト

    Add-PSSnapin Microsoft.Sharepoint.Powershell -ea 0
    
    #DistributedLogonTokenCache
    $DLTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedLogonTokenCache
    $DLTC.MaxConnectionsToServer = 1
    $DLTC.requestTimeout = "3000"
    $DLTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedLogonTokenCache $DLTC
    
    #DistributedViewStateCache
    $DVSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedViewStateCache
    $DVSC.MaxConnectionsToServer = 1
    $DVSC.requestTimeout = "3000"
    $DVSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedViewStateCache $DVSC
    
    #DistributedAccessCache
    $DAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedAccessCache
    $DAC.MaxConnectionsToServer = 1
    $DAC.requestTimeout = "3000"
    $DAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedAccessCache $DAC
    
    #DistributedActivityFeedCache
    $DAF = Get-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedCache
    $DAF.MaxConnectionsToServer = 1
    $DAF.requestTimeout = "3000"
    $DAF.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedCache $DAF
    
    #DistributedActivityFeedLMTCache
    $DAFC = Get-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedLMTCache
    $DAFC.MaxConnectionsToServer = 1
    $DAFC.requestTimeout = "3000"
    $DAFC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedActivityFeedLMTCache $DAFC
    
    #DistributedBouncerCache
    $DBC = Get-SPDistributedCacheClientSetting -ContainerType DistributedBouncerCache
    $DBC.MaxConnectionsToServer = 1
    $DBC.requestTimeout = "3000"
    $DBC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedBouncerCache $DBC
    
    #DistributedDefaultCache
    $DDC = Get-SPDistributedCacheClientSetting -ContainerType DistributedDefaultCache
    $DDC.MaxConnectionsToServer = 1
    $DDC.requestTimeout = "3000"
    $DDC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedDefaultCache $DDC
    
    #DistributedSearchCache
    $DSC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSearchCache
    $DSC.MaxConnectionsToServer = 1
    $DSC.requestTimeout = "3000"
    $DSC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSearchCache $DSC
    
    #DistributedSecurityTrimmingCache
    $DTC = Get-SPDistributedCacheClientSetting -ContainerType DistributedSecurityTrimmingCache
    $DTC.MaxConnectionsToServer = 1
    $DTC.requestTimeout = "3000"
    $DTC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedSecurityTrimmingCache $DTC
    
    #DistributedServerToAppServerAccessTokenCache
    $DSTAC = Get-SPDistributedCacheClientSetting -ContainerType DistributedServerToAppServerAccessTokenCache
    $DSTAC.MaxConnectionsToServer = 1
    $DSTAC.requestTimeout = "3000"
    $DSTAC.channelOpenTimeOut = "3000"
    Set-SPDistributedCacheClientSetting -ContainerType DistributedServerToAppServerAccessTokenCache $DSTAC
    
  3. SharePoint 管理シェル を開きます。

  4. ファイルを保存したディレクトリに移動します。

  5. PowerShell コマンド プロンプトで、次のコマンドを入力します。

    ./MaxConnections.ps1
    

詳細については、「 アプリケーション構成設定 (Windows Server AppFabric キャッシュ)」を参照してください。 Windows PowerShellスクリプトと.ps1ファイルの詳細については、「Windows PowerShell スクリプトの実行」を参照してください。

キャッシュ ホストを修復する

インストール、構成、または保守作業の際に、分散キャッシュ サービスが機能しない状態に陥る可能性があります。 分散キャッシュ サービスが機能していないことは、サーバーの全体管理の正常性ルールによって、または分散キャッシュに依存する SharePoint Server の機能をユーザーが使用したときに明らかになります。 たとえば、ユーザーの個人用サイト上のニュースフィードからエラーが報告されるようになります。 また、管理者が分散キャッシュ サービスを管理するために SharePoint 管理シェル コマンドレットを実行した場合に "cacheHostInfo is NULL " というエラー メッセージを受け取る可能性もあります。

キャッシュ ホストは、2 つの手順で修復します。

機能しなくなった分散キャッシュ ホストで、次の手順を実行して分散キャッシュ ホストを復旧します。

  1. SharePoint 管理シェル コマンド プロンプトで、Remove-SPDistributedCacheServiceInstance コマンドレットを実行します。

  2. SharePoint 管理シェル コマンド プロンプトで、Add-SPDistributedCacheServiceInstance コマンドレットを実行します。

    注:

    手順 1 が失敗した場合は、次に示す手順を使用して分散キャッシュ サービスを手動で削除します。

    • SharePoint 管理シェル コマンド プロンプトで、次の構文を入力します。

      $instanceName ="SPDistributedCacheService Name=SPCache"
      
      $serviceInstance = Get-SPServiceInstance | ? {($_.service.tostring()) -eq $instanceName -and ($_.server.name) -eq $env:computername}
      
      If($serviceInstance -ne $null)
      {
      $serviceInstance.Delete()
      }
      
      
    • 手動で分散キャッシュ サービスを削除したら、手順 2 を再実行します。

関連項目

概念

SharePoint Server でフィードおよび分散キャッシュ サービスを計画する