Workspace Environment Management

CPU管理

これらの設定により、CPU 使用率を最適化できます。

CPU 管理設定

プロセスはすべてのコアで実行でき、CPU を必要なだけ使い果たすことができます。Workspace Environment Management (WEM)では、CPU 管理設定を使用して、個々のプロセスが使用できる CPU 容量を制限できます。CPU スパイク保護は、全体的な CPU 使用量を減らすようには設計されていません。これは、CPU 使用率を過剰に消費するプロセスによるユーザーエクスペリエンスへの影響を軽減するように設計されています。

CPU スパイク保護を有効にすると、プロセスが指定したしきい値に達すると、WEM はプロセスの優先度を一定時間自動的に下げます。その後、新しいアプリケーションが起動されると、優先順位の低いプロセスよりも優先順位が高く、システムはスムーズに動作し続けます。

CPUスパイク保護は、迅速な「スナップショット」で各プロセスを検査します。プロセスの平均負荷が、指定したサンプル時間に対して指定された使用制限を超えると、その優先度はすぐに低下します。指定した時間が経過すると、プロセスの CPU 優先度は前の値に戻ります。プロセスは「スロットル」されません。CPUクランピングと同様に、優先順位だけが低下します。

CPU スパイク保護は、個々のプロセスの少なくとも 1 つのインスタンスがしきい値を超えるまでトリガーされません。つまり、CPU の合計消費量が指定されたしきい値を超えた場合でも、少なくとも 1 つのプロセスインスタンスがしきい値を超えない限り、CPU スパイク保護はトリガーされません。しかし、そのプロセスインスタンスが CPU スパイク保護をトリガーすると、「インテリジェントな CPU 最適化を有効にする」オプションを有効にすると、同じプロセスの新しいインスタンスが (CPU) 最適化されます。

特定のプロセスが CPU スパイク保護をトリガーするたびに、そのイベントはエージェントのローカル・データベースに記録されます。エージェントは、各ユーザーのトリガーイベントを個別に記録します。つまり、user1 の特定のプロセスの CPU 最適化は、user2 の同じプロセスの動作には影響しません。

たとえば、Internet ExplorerがCPUの50~ 60% を消費することがある場合には、CPUスパイク保護を使用して、VDAのパフォーマンスを脅かすようなiexplore.exe インスタンスのみをターゲットにすることができます。(対照的に、CPU クランプはすべてのプロセスに適用されます。)

サンプル時間を試して、同じVDAにログオンしている他のユーザーに影響を与えない環境に最適な値を決定することをお勧めします。

CPUスパイク保護

注:

  • 以下の設定の「CPU使用率」は、物理マシンまたは仮想マシンの「論理プロセッサ」数に基づきます。CPU の各コアは、Windows と同じ方法で、論理プロセッサと見なされます。たとえば、1 つの 6 コア CPU を搭載した物理マシンは、12 個の論理プロセッサを搭載していると見なされます (ハイパースレッドテクノロジーにより、コアが 2 倍になります)。8 個の CPU を搭載し、それぞれ 12 個のコアを持つ物理マシンには、96 個の論理プロセッサがあります。2 つの 4 コア CPU で構成された VM には、8 個の論理プロセッサがあります。
  • 同じことが仮想マシンにも当てはまります。たとえば、8個のCPUを持つ物理マシンがあり、それぞれに12個のコア(96個の論理プロセッサ)があり、4つのマルチセッションOS VDA仮想マシンをサポートしているとします。各 VM は、2 つの 4 コア CPU (8個の論理プロセッサ) で構成されます。仮想マシンで CPU スパイク保護をトリガーするプロセスを制限し、そのコアの半分を使用するには、[CPU コア使用率の 制限] を 48(物理マシンの論理プロセッサの半分)ではなく 4(仮想マシンの論理プロセッサの半分)に設定します。

CPU スパイク保護を有効にします。一定期間の CPU 使用率(L imit Sample Time フィールドで指定)を超えると、一定時間( Idle Priority Time フィールドで指定)のプロセスの CPU プライオリティを下げます。

  • CPUスパイクを自動的に防ぎます。CPU を過負荷にするプロセスの CPU 優先度を自動的に下げるには、このオプションを使用します。このオプションは、論理プロセッサ (CPU コア) の数に基づいて CPU スパイク保護をトリガーするしきい値を自動的に計算します。たとえば、コアが4つあるとします。このオプションを有効にすると、全体の CPU 使用率が 23% を超えると、CPU リソース全体の 15% 以上を消費するプロセスの CPU 優先順位が自動的に低下します。同様に、8コアの場合、全体のCPU使用率が 11% を超えると、CPUリソースの 8% 以上を消費するプロセスのCPU優先順位が自動的に低下します。

  • CPUスパイク保護をカスタマイズする。 CPU スパイク保護の設定をカスタマイズできるようになります。

    • CPU 使用量の制限。CPU スパイク保護をトリガーするためにプロセスインスタンスが到達する必要がある CPU 使用率の割合。この制限は、サーバ内のすべての論理プロセッサでグローバルであり、インスタンスごとに決定されます。同じプロセスの複数のインスタンスでは、CPU スパイク保護トリガーを決定するときに、CPU 使用率の割合は加算されません。プロセスインスタンスがこの制限に達しない場合、CPU スパイク保護はトリガーされません。たとえば、サーバーVDAで、複数の同時セッションで、多数のiexplore.exeインスタンスがあるとします。各インスタンスは、一定期間中約 35% の CPU 使用率でピークに達しているため、累積的に、iexplore.exe は CPU 使用率の一貫して高い割合を消費しています。ただし、CPU 使用率の制限を 35% 以下に設定しない限り、CPU スパイク保護はトリガーされません。
    • サンプル時間を制限します。プロセスが CPU プライオリティを下げる前に CPU 使用率の制限を超える必要がある時間。
    • アイドルプライオリティ時間。プロセスの CPU プライオリティが低下する時間の長さ。この時間が経過すると、優先順位は次のいずれかに戻ります。
      • [CPU の優先順位** ] タブでプロセスの優先順位が指定されておらず、[インテリジェント CPU 最適化 **を有効にする]オプションが選択されていない場合のデフォルトレベル (Normal)。
      • [インテリジェント CPU 最適化 を有効にする]オプションが選択されているかどうかにかかわらず、** [ **CPU 優先順位] タブでプロセスの優先順位が指定されている場合に指定されたレベル。
      • プロセスの動作に応じてランダムなレベル。このケースは、[ CPU の優先順位 ] タブでプロセスの優先順位が指定されておらず、[インテリジェント CPU 最適化 を有効にする] オプションが選択されている場合に発生します。プロセスが CPU スパイク保護をトリガーする頻度が高いほど、CPU の優先度は低くなります。

CPU コア使用量の制限を有効にします。CPU スパイク保護をトリガーするプロセスを、マシン上の指定された数の論理プロセッサに制限します。1 ~ X の範囲の整数を入力します。X はコアの総数です。X より大きい整数を入力すると、WEM は分離されたプロセスの最大消費量を既定で X に制限します。

  • CPU コア使用量を制限します。CPU スパイク保護をトリガーするプロセスが制限される論理プロセッサの数を指定します。VM の場合、入力する値によって、基盤となる物理ハードウェアではなく、VM 内の論理プロセッサの数にプロセスが制限されます。

インテリジェント CPU 最適化を有効にします。有効にすると、エージェントは CPU スパイク保護をトリガーするプロセスの CPU 優先度をインテリジェントに最適化します。CPU スパイク保護を繰り返しトリガーするプロセスには、正しく動作するプロセスよりも起動時の CPU 優先度が徐々に低くなります。WEM は、次のシステムプロセスに対して CPU 最適化を実行しません。

  • Taskmgr
  • System Idle Process
  • System
  • Svchost
  • LSASS
  • Wininit
  • services
  • csrss
  • audiodg
  • MsMpEng
  • NisSrv
  • mscorsvw
  • VMWareResolutionset

インテリジェントI/O最適化を有効にします。有効にすると、エージェントは CPU スパイク保護をトリガーするプロセスのプロセス I/O 優先度をインテリジェントに最適化します。CPU スパイク保護を繰り返しトリガーするプロセスには、正しく動作するプロセスよりも起動時の I/O 優先度が徐々に低くなります。

指定したプロセスを除外します。デフォルトでは、WEM CPU管理は、最も一般的なCitrixおよびWindowsコアサービスプロセスのすべてを除外します。ただし、このオプションを使用して、実行可能名 (notepad.exe など) による CPU スパイク保護の除外リストからプロセスを追加**または削除できます。通常、ウイルス対策プロセスは除外されます。

ヒント:

  • セッションでディスク I/O を引き継ぐアンチウイルススキャンを停止するには、アンチウイルスプロセスの静的 I/O 優先度を低に設定することもできます。「 I/O 管理」を参照してください
  • プロセスが CPU スパイク保護をトリガーし、プロセスの CPU 優先度が下がると、WEM はプロセスの CPU 優先度が下がるたびに警告を記録します。イベントログの [アプリケーションとサービスログ] の [Norskale エージェントサービス] で、[プロセスのプロセス制限スレッドの初期化中] を探します。

CPU プライオリティ

これらの設定は、プロセスがリソースと競合している場合に有効になります。これにより、特定のプロセスの CPU 優先度レベルを最適化できるため、CPU プロセッサ時間に対して競合しているプロセスがパフォーマンスのボトルネックを引き起こさないようになります。プロセスが互いに競合する場合、優先順位の低いプロセスは、優先順位の高い他のプロセスの後に処理されます。したがって、CPU 全体の消費量の大きなシェアを消費する可能性は低くなります。

ここで設定するプロセスの優先順位は、プロセス内のすべてのスレッドの「基本優先順位」を確立します。スレッドの実際の「現在の」優先順位は高くなる可能性があります(ただし、ベースよりも低いことはありません)。コンピューター上で多数のプロセスが実行されている場合、プロセッサ時間は CPU の優先度レベルに基づいてそれらの間で共有されます。プロセスの CPU 優先度レベルが高いほど、プロセッサ時間が割り当てられます。

注:

特定のプロセスで CPU の優先度を低く設定した場合、全体の CPU 消費量は必ずしも減少しません。CPU 使用率の割合に影響する他のプロセス(CPU プライオリティが高い)がある可能性があります。

プロセスの優先順位を有効にします。オンにすると、プロセスの CPU プライオリティを手動で設定できます。

CPU プライオリティプロセスリストにプロセスを追加するには

  1. [ 追加] をクリックし 、[プロセス CPU 優先度の 追加 ] ダイアログボックスで詳細を入力します。
  2. [ OK ] をクリックして、ダイアログボックスを閉じます。
  3. [ 適用 ] をクリックして設定を適用します。ここで設定したプロセス CPU の優先順位は、エージェントが新しい設定を受け取り、プロセスが再起動されたときに有効になります。

プロセス名。拡張子のないプロセスの実行可能ファイル名です。たとえば、Windows エクスプローラー (explorer.exe) の場合は、「エクスプローラー」と入力します。

CPU プライオリティ。プロセス内のすべてのスレッドの「ベース」優先度。プロセスの優先度レベルが高いほど、プロセッサ時間が長くなります。[リアルタイム]、[高]、[通常以上]、[通常以下]、[低] から選択します。

プロセス I/O 優先度項目を編集するには

プロセス名を選択し、「 編集」をクリックします

I/O 優先度リストからプロセスを削除するには

プロセス名を選択し、「 削除」をクリックします

CPU アフィニティ

プロセスアフィニティを有効にします。有効にすると、プロセスで使用する「論理プロセッサ」の数を定義できます。たとえば、VDAで起動されるメモ帳のすべてのインスタンスを、定義されたコア数に制限できます。

CPU クランピング

CPU クランピングにより、プロセスが CPU の処理能力の指定された割合を超えることを防止できます。指定したCPU率に達すると、WEMにより、そのプロセスが「調整」(または「クランプ」) されます。これにより、プロセスが大量の CPU を消費するのを防ぐことができます。

注:

  • CPUクランプは、演算費用のかかるブルートフォースアプローチです。面倒なプロセスの CPU 使用率を人為的に低く抑えるには、静的 CPU 優先順位と CPU アフィニティをそのようなプロセスに割り当てると同時に、CPU スパイク保護を使用する方がよいでしょう。CPUクランプは、リソース管理で悪く悪くても優先順位が下がることができないプロセスを制御するために予約するのが最適です。
  • CPUの処理能力のパーセンテージをプロセスに適用し、後で同じプロセスに対して異なるパーセンテージを構成した後、[Agent Host Settings** の **更新] を選択して変更を有効にします。

設定したクランピングパーセンテージは、サーバ内の個々の CPU の総電力に適用されます。サーバに含まれる個々のコアには適用されません。つまり、クアッドコアCPUの10%はCPU全体の10%であり、1つのコアの 10%ではありません。

プロセスクランピングを有効にします。プロセスクランピングを有効にします。

[ 追加]。実行可能名 (notepad.exe など) でプロセスを追加します。

[ 削除]。強調表示されたプロセスをクランプリストから削除します。

[ 編集]:特定のプロセスに入力された値を編集します。

ヒント:

  • WEM がプロセスをクランプしているとき、WEM クライアントが初期化するウォッチリストにそのプロセスを追加します。これを表示すると、プロセスがクランプされていることを確認できます。
  • また、CPU クランプが機能していることを確認するには、プロセスモニターを見て、CPU 消費量がクランプ率を上回らないことを確認します。
CPU管理