このトピックでは、リモート デスクトップ セッション ホスト (RD セッション ホスト) ハードウェアの選択方法、ホストのチューニング方法、およびアプリケーションのチューニング方法について説明します。
このトピックの内容:
パフォーマンスのために適切なハードウェアを選択する
RD セッション ホスト サーバーの展開では、ハードウェアの選択は、アプリケーション セットとユーザーによる使用方法によって決まります。 ユーザー数とそのエクスペリエンスに影響を与える主な要因は、CPU、メモリ、ディスク、およびグラフィックスです。 このセクションには、RD セッション ホスト サーバーに固有の追加のガイドラインが含まれており、主に RD セッション ホスト サーバーのマルチユーザー環境に関連しています。
CPU構成
CPU 構成は、セッションをサポートするために必要な CPU に、システムがサポートすると予想されるセッションの数を乗算し、一時的なスパイクを処理するためのバッファー ゾーンを維持することによって概念的に決定されます。 複数の論理プロセッサを使用すると、異常な CPU の輻輳状態を減らすのに役立ちます。これは通常、同数の論理プロセッサに含まれる少数のオーバーアクティブ スレッドによって発生します。
したがって、システム上の論理プロセッサが多いほど、CPU 使用率の見積もりに組み込む必要があるクッション・マージンが低くなり、CPU あたりのアクティブ負荷の割合が大きくなります。 覚えておくべき重要な要素の 1 つは、CPU の数を 2 倍にしても CPU 容量が 2 倍になるわけではないということです。
メモリ構成
メモリ構成は、ユーザーが使用するアプリケーションによって異なります。ただし、必要なメモリ量は、次の式を使用して見積もることができます: TotalMem = OSMem + SessionMem * NS
OSMemはオペレーティングシステムの実行に必要なメモリ量(システムバイナリイメージ、データ構造など)、SessionMemは1つのセッションで実行されているプロセスが必要とするメモリ量、NSはアクティブセッションの目標数です。 セッションに必要なメモリの量は、ほとんどの場合、セッション内で実行されているアプリケーションおよびシステム プロセスのプライベート メモリ参照セットによって決まります。 共有コードまたはデータ・ページは、システム上に 1 つのコピーしか存在しないため、ほとんど影響しません。
興味深い観察結果の 1 つは (ページ ファイルをバックアップしているディスク システムが変更されないと仮定して)、システムがサポートする予定の同時アクティブ セッションの数が多いほど、セッションごとのメモリ割り当てを大きくする必要があるということです。 セッションごとに割り当てられるメモリの量が増えない場合、アクティブ セッションが生成するページ フォールトの数は、セッションの数とともに増加します。 これらの障害は、最終的に I/O サブシステムを圧倒します。 セッションごとに割り当てられるメモリの量を増やすと、ページフォールトが発生する可能性が減少し、ページフォールトの全体的な割合を減らすのに役立ちます。
ディスク構成
ストレージは、RD セッション ホスト サーバーを構成するときに最も見落とされる側面の 1 つであり、現場にデプロイされるシステムで最も一般的な制限になる可能性があります。
一般的な RD セッション ホスト サーバーで生成されるディスク アクティビティは、次の領域に影響します。
システムファイルとアプリケーションバイナリ
ページファイル
ユーザープロファイルとユーザーデータ
理想的には、これらの領域は個別のストレージデバイスによってバックアップする必要があります。 ストライプ RAID 構成またはその他のタイプの高性能ストレージを使用すると、パフォーマンスがさらに向上します。 ストレージ・アダプターは、バッテリ・バックアップの書き込みキャッシングとともに使用することを強くお勧めします。 ディスク書き込みキャッシュを備えたコントローラーでは、同期書き込み操作のサポートが強化されています。 すべてのユーザーに個別のハイブがあるため、RD セッション ホスト サーバーでは同期書き込み操作が非常に一般的です。 レジストリ ハイブは、同期書き込み操作を使用して定期的にディスクに保存されます。 これらの最適化を有効にするには、ディスク管理コンソールから、コピー先ディスクの [プロパティ ] ダイアログ ボックスを開き、[ ポリシー ] タブで [ ディスクの書き込みキャッシュを有効にする ] チェック ボックスと [デバイスでの Windows 書き込みキャッシュ バッファのフラッシュをオフにする ] チェック ボックスをオンにします。
ネットワーク構成
RD セッション ホスト サーバーのネットワーク使用量には、次の 2 つの主要なカテゴリがあります。
RD セッション ホスト接続トラフィックの使用量は、セッション内で実行されているアプリケーションとリダイレクトされたデバイスの I/O トラフィックによって示される描画パターンによってほぼ独占的に決定されます。
たとえば、テキスト処理やデータ入力を処理するアプリケーションは、毎秒約 10 から 100 キロビットの帯域幅を消費しますが、リッチなグラフィックスやビデオ再生では、帯域幅の使用量が大幅に増加します。
ローミング プロファイル、ファイル共有へのアプリケーション アクセス、データベース サーバー、電子メール サーバー、HTTP サーバーなどのバックエンド接続。
ネットワーク トラフィックの量とプロファイルは、各展開に固有です。
リモート・デスクトップ・セッション・ホストのアプリケーションのチューニング
RD セッション ホスト サーバーの CPU 使用率のほとんどは、アプリによって駆動されます。 デスクトップ アプリは通常、アプリケーションがユーザーの要求に応答するのにかかる時間を最小限に抑えることを目標に、応答性に向けて最適化されます。 ただし、サーバー環境では、他のセッションに悪影響を及ぼさないように、アクションを完了するために必要な CPU 使用量の合計を最小限に抑えることも同様に重要です。
RD セッション ホスト サーバーで使用するアプリを構成する場合は、次の推奨事項を考慮してください。
バックグラウンドのアイドルループ処理を最小化
典型的な例としては、バックグラウンドの文法とスペル チェックの無効化、検索用のデータ インデックス作成、バックグラウンド保存などがあります。
アプリが状態チェックや更新を実行する頻度を最小限に抑えます。
このような動作を無効にしたり、ポーリングの反復とタイマーの起動の間隔を長くしたりすると、このようなアクティビティの影響が多くのアクティブ セッションで急速に増幅されるため、CPU 使用率が大幅に向上します。 典型的な例は、接続ステータスアイコンとステータスバー情報の更新です。
同期の頻度を減らすことで、アプリ間のリソース競合を最小限に抑えます。
このようなリソースの例としては、レジストリ キーや構成ファイルなどがあります。 製品のコンポーネントと機能の例としては、ステータスインジケータ(シェル通知など)、バックグラウンドでのインデックス作成または変更監視、オフライン同期などがあります。
ユーザーのサインインまたはセッションの開始時に登録されている不要なプロセスを無効にします。
これらのプロセスは、新しいユーザーセッションを作成する際の CPU 使用率のコストに大きく影響する可能性があり、通常は CPU を集中的に使用するプロセスであり、午前中のシナリオでは非常にコストがかかる可能性があります。 MsConfig.exe または MsInfo32.exe を使用して、ユーザーのサインイン時に開始されるプロセスの一覧を取得します。 詳細については、 Windows の自動実行を使用できます。
メモリの消費については、次の点を考慮する必要があります。
アプリによって読み込まれた DLL が再配置されていないことを確認します。
再配置された DLL は、次の図に示すように、 Process Explorer を使用して [Process DLL] ビューを選択することで確認できます。
ここでは、y.dll がすでにデフォルトのベースアドレスを占有しており x.dll ASLRが有効になっていなかったため、再配置されたことがわかります
DLL が再配置されると、セッション間でコードを共有できなくなり、セッションのフットプリントが大幅に増加します。 これは、RD セッション ホスト サーバーで最も一般的なメモリ関連のパフォーマンスの問題の 1 つです。
共通言語ランタイム (CLR) アプリケーションの場合は、ネイティブ イメージ ジェネレーター (Ngen.exe) を使用して、ページ共有を増やし、CPU のオーバーヘッドを減らします。
可能であれば、他の同様の実行エンジンに同様の手法を適用します。
リモート デスクトップ セッション ホストのチューニング パラメーター
ページ ファイル
ページ ファイル サイズが不十分な場合、アプリまたはシステム コンポーネントでメモリ割り当てが失敗する可能性があります。 memory-to-committed bytes パフォーマンス カウンターを使用して、システム上のコミットされた仮想メモリの量を監視できます。
ウイルス対策
RD セッション ホスト サーバーにウイルス対策ソフトウェアをインストールすると、システム全体のパフォーマンス、特に CPU 使用率に大きく影響します。 一時ファイルを保持するすべてのフォルダ (特にサービスやその他のシステム コンポーネントが生成するフォルダ) をアクティブ監視リストから除外することを強くお勧めします。
タスク スケジューラ
タスク スケジューラを使用すると、さまざまなイベントにスケジュールされているタスクの一覧を調べることができます。 RD セッション ホスト サーバーの場合、アイドル状態、ユーザー サインイン時、またはセッションの接続と切断で実行されるように構成されたタスクに特に焦点を当てると便利です。 デプロイメントの特性により、これらのタスクの多くは不要な場合があります。
デスクトップ通知アイコン
デスクトップ上の通知アイコンには、かなり高価な更新メカニズムがある場合があります。 通知を無効にするには、通知を登録するコンポーネントをスタートアップ リストから削除するか、アプリとシステム コンポーネントの構成を変更して通知を無効にします。 通知アイコンのカスタマイズを使用して、サーバーで使用可能な通知のリストを調べることができます。
リモートデスクトッププロトコルデータ圧縮
リモート デスクトップ プロトコルの圧縮は、 コンピューターの構成>管理用テンプレート>Windows コンポーネント>リモート デスクトップ サービス>リモート デスクトップ セッション ホスト>リモート セッション環境>RemoteFX データの圧縮の構成] のグループ ポリシーを使用して構成できます。 次の 3 つの値を指定できます。
メモリ使用量を抑えるように最適化 セッションあたりのメモリ消費量は最小ですが、圧縮率は最も低いため、帯域幅の消費量が最も多くなります。
メモリとネットワーク帯域幅のバランスを取ります 帯域幅の消費量を削減しながら、メモリ消費量をわずかに増やしました (セッションあたり約 200 KB)。
ネットワーク帯域幅の使用量を抑えるように最適化 ネットワーク帯域幅の使用量をさらに削減しますが、セッションあたり約 2 MB のコストがかかります。 この設定を使用する場合は、サーバーを運用環境に配置する前に、セッションの最大数を評価し、この設定でそのレベルまでテストする必要があります。
また、リモート デスクトップ プロトコル圧縮アルゴリズムを使用しないように選択することもできるため、ネットワーク トラフィックを最適化するように設計されたハードウェア デバイスでのみ使用することをお勧めします。 圧縮アルゴリズムを使用しないように選択した場合でも、一部のグラフィックデータは圧縮されます。
デバイス リダイレクト
デバイスのリダイレクトは、[コンピューターの構成]>[管理用テンプレート]>[Windows コンポーネント]>[リモート デスクトップ サービス]>リモート デスクトップ セッション ホスト>デバイスとリソースのリダイレクト」のグループ ポリシーを使用するか、サーバー マネージャーの [セッション コレクションのプロパティ] ボックスを使用して構成できます。
一般に、デバイス リダイレクトでは、クライアント コンピューター上のデバイスとサーバー セッションで実行されているプロセス間でデータが交換されるため、RD セッション ホスト サーバー接続が使用するネットワーク帯域幅が増加します。 増加の程度は、リダイレクトされたデバイスに対してサーバー上で実行されているアプリケーションによって実行される操作の頻度の関数です。
プリンターのリダイレクトとプラグアンドプレイデバイスのリダイレクトも、サインイン時のCPU使用率を増加させます。 プリンターは、次の 2 つの方法でリダイレクトできます。
プリンターのドライバーをサーバーにインストールする必要がある場合の、プリンター ドライバー ベースのリダイレクトの一致。 Windows Server の以前のリリースでは、この方法が使用されていました。
Windows Server 2008 で導入された Easy Print プリンター ドライバーのリダイレクトでは、すべてのプリンターに共通のプリンター ドライバーが使用されます。
Easy Print方式は、接続時のプリンターインストールのCPU使用率が低くなるため、お勧めします。 ドライバーのマッチング方式では、スプーラー サービスで異なるドライバーを読み込む必要があるため、CPU 使用率が増加します。 帯域幅の使用については、Easy Print によってネットワーク帯域幅の使用量がわずかに増加しますが、他のパフォーマンス、管理性、および信頼性の利点を相殺するほど大きくはありません。
オーディオ リダイレクトにより、ネットワーク トラフィックが一定に流れます。 また、オーディオ リダイレクトを使用すると、通常は CPU 消費量が多いマルチメディア アプリを実行できます。
クライアント エクスペリエンスの設定
既定では、リモート デスクトップ接続 (RDC) は、サーバーとクライアント コンピューター間のネットワーク接続の適合性に基づいて、適切なエクスペリエンス設定を自動的に選択します。 RDC 構成は [接続品質を自動的に検出する] のままにしておくことをお勧めします。
上級ユーザー向けに、RDC では、リモート デスクトップ サービス接続のネットワーク帯域幅のパフォーマンスに影響を与えるさまざまな設定を制御できます。 次の設定には、リモート デスクトップ接続の [エクスペリエンス ] タブを使用するか、RDP ファイルの設定としてアクセスできます。
どのコンピューターに接続する場合も、次の設定が適用されます。
壁紙を無効にする (Disable wallpaper:i:0) リダイレクトされた接続でデスクトップの壁紙を表示しません。 この設定により、デスクトップの壁紙が描画に多額のコストがかかる画像またはその他のコンテンツで構成されている場合、帯域幅の使用量を大幅に削減できます。
ビットマップキャッシュ (Bitmapcachepersistenable:i:1) この設定を有効にすると、セッションでレンダリングされるビットマップのクライアント側キャッシュが作成されます。 これにより、帯域幅の使用量が大幅に改善されるため、常に有効にする必要があります (他のセキュリティ上の考慮事項がない限り)。
ドラッグ中にウィンドウの内容を表示する (ウィンドウ全体のドラッグを無効にする:i:1) この設定を無効にすると、ウィンドウをドラッグしたときにすべてのコンテンツではなく、ウィンドウフレームのみが表示されるため、帯域幅が削減されます。
メニューとウィンドウのアニメーション (Disable menu anims:i:1 and Disable cursor setting:i:1): これらの設定を無効にすると、メニューのアニメーション (フェードなど) とカーソルのアニメーションが無効になり、帯域幅が減少します。
フォントスムージング (Allow font smoothing:i:0) ClearType フォントレンダリングのサポートを制御します。 Windows 8 または Windows Server 2012 以降を実行しているコンピューターに接続する場合、この設定を有効または無効にしても、帯域幅の使用量に大きな影響はありません。 ただし、Windows 7 および Windows 2008 R2 より前のバージョンを実行しているコンピューターの場合、この設定を有効にすると、ネットワーク帯域幅の消費に大きく影響します。
次の設定は、Windows 7 以前のバージョンのオペレーティング システムを実行しているコンピューターに接続する場合にのみ適用されます。
デスクトップコンポジション この設定は、Windows 7 または Windows Server 2008 R2 を実行しているコンピューターへのリモート セッションでのみサポートされます。
ビジュアルスタイル (テーマを無効にする:i:1) この設定を無効にすると、クラシックテーマを使用するテーマの描画が簡素化され、帯域幅が削減されます。
リモート デスクトップ接続の [エクスペリエンス ] タブを使用すると、ネットワーク帯域幅のパフォーマンスに影響を与える接続速度を選択できます。 次に、接続速度の設定に使用できるオプションを示します。
接続品質を自動的に検出 する(接続タイプ:i:7) この設定を有効にすると、リモートデスクトップ接続は、接続品質に基づいて最適なユーザーエクスペリエンスをもたらす設定を自動的に選択します。 (この構成は、Windows 8 または Windows Server 2012 以降を実行しているコンピューターに接続する場合に推奨されます)。
モデム (56 Kbps) (接続タイプ:i:1) この設定により、永続的なビットマップ キャッシュが有効になります。
低速ブロードバンド (256 Kbps - 2 Mbps) (接続タイプ:i:2) この設定により、永続的なビットマップ キャッシュとビジュアル スタイルが有効になります。
セルラー/サテライト (2Mbps - 16 Mbps、高遅延) (接続タイプ:i:3) この設定により、デスクトップコンポジション、永続的なビットマップキャッシング、ビジュアルスタイル、およびデスクトップの背景が有効になります。
高速ブロードバンド (2 Mbps – 10 Mbps) (接続タイプ:i:4) この設定により、デスクトップの構成、ドラッグ中のウィンドウの内容の表示、メニューとウィンドウのアニメーション、永続的なビットマップ キャッシュ、ビジュアル スタイル、およびデスクトップの背景が可能になります。
WAN (10 Mbps 以上、高遅延) (接続タイプ:i:5) この設定により、デスクトップの構成、ドラッグ中のウィンドウの内容の表示、メニューとウィンドウのアニメーション、永続的なビットマップ キャッシュ、ビジュアル スタイル、およびデスクトップの背景が可能になります。
LAN(10Mbps以上)( 接続タイプ:i:6)この設定により、デスクトップの構成、ドラッグ中のウィンドウの内容の表示、メニューとウィンドウのアニメーション、永続的なビットマップキャッシュ、テーマ、およびデスクトップの背景が可能になります。
デスクトップサイズ
リモートセッションのデスクトップサイズは、リモートデスクトップ接続の「表示」タブを使用するか、RDP設定ファイル(desktopwidth:i:1152およびdesktopheight:i:864)を使用して制御できます。 デスクトップのサイズが大きいほど、そのセッションに関連付けられているメモリと帯域幅の消費量が大きくなります。 現在の最大デスクトップ サイズは 4096 x 2048 です。