CPU管理

最終公開日 : Nov 13, 2026
これらの設定により、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と同様に論理プロセッサとして扱われます。たとえば、6コアCPUを1つ搭載した物理マシンは、12個の論理プロセッサを持つと見なされます(ハイパースレッディングテクノロジーによりコアが2倍になります)。12コアのCPUを8個搭載した物理マシンには、96個の論理プロセッサがあります。4コアCPUを2つ搭載したVMには、8個の論理プロセッサがあります。
  • 仮想マシンにも同じことが当てはまります。たとえば、12コアのCPUを8個搭載した物理マシン(論理プロセッサ96個)があり、4つのマルチセッションOS VDA VMをサポートしているとします。各VMは、4コアCPUを2つ(論理プロセッサ8個)搭載するように構成されています。VMでCPUスパイク保護をトリガーするプロセスがそのコアの半分を使用するように制限するには、CPUコア使用率の制限 を4(VMの論理プロセッサの半分)に設定し、48(物理マシンの論理プロセッサの半分)には設定しないでください。
CPUスパイク保護を有効にする。プロセスが指定されたCPU使用率の割合を一定期間(サンプル時間制限 フィールドで指定)超えた場合、一定期間(アイドル優先度時間 フィールドで指定)プロセスの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スパイク保護はトリガーされません。たとえば、Server VDAで、複数の同時セッションにおいて、iexplore.exeインスタンスが多数あるとします。各インスタンスは一時的にCPU使用率が約35%に達するため、累積的にはiexplore.exeが常に高いCPU使用率を消費しています。ただし、CPU使用率の制限を35%以下に設定しない限り、CPUスパイク保護はトリガーされません。
    • サンプル時間の制限。 プロセスのCPU優先度が低下する前に、CPU使用率の制限を超過し続ける必要がある時間。
    • アイドル優先度時間。 プロセスのCPU優先度が低下する時間。その時間が経過すると、優先度は次のいずれかに戻ります。
      • CPU優先度タブでプロセス優先度が指定されておらず、インテリジェントCPU最適化を有効にするオプションが選択されていない場合、デフォルトレベル(通常)。
      • インテリジェント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最適化を実行しないことに注意してください。
  • タスクマネージャー
  • システムアイドルプロセス
  • システム
  • サービスホスト
  • LSASS
  • ウィンイニット
  • サービス
  • シーエスアールエスエス
  • オーディオディージー
  • MsMpEng
  • NisSrv
  • エムエスコーアエスブイダブリュー
  • ブイエムウェアレゾリューションセット
インテリジェント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優先度を低下させるたびに警告をログに記録します。イベントログの「アプリケーションとサービスログ」にある「WEM Agent Service」で、「Initializing process limitation thread for process」を探してください。

CPUスパイク保護オプション

CPUスパイク保護をどのように適用するかを選択します。
  • CPUスパイクを自動的に防止。システムのCPU使用率(単一のCPUコアに対する相対値)が90%を超え、プロセスのCPU使用率(単一のCPUコアに対する相対値)が80%を超えた場合に、エージェントがCPUスパイク保護を実行するようにするには、このオプションを使用します。
  • CPUスパイク保護をカスタマイズ。CPUスパイク保護の設定をカスタマイズできます。
    • 「CPU使用率の制限。CPUスパイク保護をトリガーするために、任意のプロセスインスタンスが到達する必要があるCPU使用率の割合。この制限は、サーバー上のすべての論理プロセッサにわたってグローバルであり、インスタンスごと、プロセスごとに決定されます。単一のCPUコアを基準として制限を構成するには、「単一CPUコアに対する制限を設定」オプションを使用します。」.
    注:
    • 整数値と非整数値の両方がサポートされています。たとえば37.5%のような非整数値を入力することで、8コアプラットフォームで3コア以上を使用するプロセスを制限できます。
    • 「単一CPUコアに対する制限を設定。単一のCPUコアを基準としてCPU使用率の制限を設定できます。値は100%を超えることも可能で、たとえば200%や250%などです。例: 値が200%に設定されている場合、エージェントは2つ以上のCPUコアを使用するプロセスを最適化します。整数値と非整数値の両方がサポートされています。「単一CPUコアに対する制限を設定」設定は、WEM Webコンソールでのみ構成できます。」.
    • 「CPUスパイク保護のカスタマイズ」が構成されている場合、グローバルCPU使用率の制限、または単一CPUコアに対するCPU使用率の制限のいずれかが最初に到達したときに、CPUスパイク保護がトリガーされます。
CPUスパイク保護をトリガーするプロセスに対して、エージェントは次のことを実行できます。
  • 「CPUコア使用率の制限を有効にする」オプションが選択されていない場合: エージェントはそれらのプロセスのCPU優先度を下げます。
  • 「CPUコア使用率の制限を有効にする」オプションが選択されている場合: エージェントはそれらのプロセスのCPU優先度を下げ、マシン上の指定された数の論理プロセッサに制限します。
CPUスパイク保護を構成する際は、次の点に留意してください。
  • 同じプロセスの複数のインスタンスは、CPUスパイク保護のトリガーを決定する際にCPU使用率が加算されません。プロセスインスタンスがこの制限に達しない場合、CPUスパイク保護はトリガーされません。たとえば、複数の同時セッションを持つマルチセッションVDAの場合、複数のchrome.exeプロセスが存在します。CPU使用率を計算する際に、それらのCPU使用率が合計されることはありません。

CPUスパイク保護のサンプリング時間

「サンプル時間制限。CPUスパイク保護が適用される前に、プロセスがCPU使用率の制限を超過し続ける必要がある時間。」.

CPUスパイク保護の優先度低下時間

「アイドル優先度時間。プロセスのCPU優先度が低下する時間。その時間が経過すると、優先度は次のいずれかに戻ります。」:
CPU優先度タイルでプロセス優先度が指定されておらず、「インテリジェントCPU最適化を有効にする」オプションが選択されていない場合、デフォルトレベル(通常)に戻ります。 CPU優先度タイルでプロセス優先度が指定されている場合、「インテリジェントCPU最適化を有効にする」オプションが選択されているかどうかにかかわらず、指定されたレベルに戻ります。 プロセスの動作に応じて計算されたランダムなレベルに戻ります。このケースは、CPU優先度タイルでプロセス優先度が指定されておらず、「インテリジェントCPU最適化を有効にする」オプションが選択されている場合に発生します。プロセスがCPUスパイク保護をトリガーする頻度が高いほど、そのCPU優先度は低くなります。

追加オプション

CPUコア使用制限を有効にする。このオプションを使用して、CPUスパイク保護をトリガーするプロセスを、マシン上の特定の数の論理プロセッサに制限します。

CPU優先度

これらの設定は、プロセスがリソースを競合している場合に有効になります。これにより、特定のプロセスのCPU優先度レベルを最適化し、CPUプロセッサ時間を競合するプロセスがパフォーマンスのボトルネックを引き起こさないようにすることができます。プロセスが互いに競合する場合、優先度の低いプロセスは、優先度の高い他のプロセスの後に処理されます。したがって、全体的なCPU消費量の大部分を占める可能性は低くなります。
ここで設定するプロセス優先度は、プロセス内のすべてのスレッドの「ベース優先度」を確立します。スレッドの実際の、または「現在の」優先度は、ベースよりも高くなる場合があります(ただし、ベースよりも低くなることはありません)。コンピュータで複数のプロセスが実行されている場合、プロセッサ時間はCPU優先度レベルに基づいてそれらの間で共有されます。プロセスのCPU優先度レベルが高いほど、より多くのプロセッサ時間が割り当てられます。
注:
特定のプロセスでCPU優先度レベルを低く設定しても、全体的なCPU消費量が必ずしも減少するわけではありません。他のプロセス(より高いCPU優先度を持つ)が、依然としてCPU使用率に影響を与えている可能性があります。
プロセス優先度を有効にする。選択すると、プロセスのCPU優先度を手動で設定できます。

プロセスを追加するには

  1. 追加をクリックし、プロセスCPU優先度の追加ダイアログボックスに詳細を入力します。
  2. OKをクリックしてダイアログボックスを閉じます。
  3. 適用をクリックして設定を適用します。ここで設定したプロセスCPU優先度は、エージェントが新しい設定を受信し、プロセスが再起動されたときに有効になります。
    プロセス名。拡張子を含まないプロセス実行可能ファイル名。たとえば、Windowsエクスプローラー (explorer.exe) の場合は「explorer」と入力します。
    CPU優先度。プロセス内のすべてのスレッドの「ベース」優先度。プロセスの優先度レベルが高いほど、より多くのプロセッサ時間が割り当てられます。リアルタイム、高、通常以上、通常、通常以下、低から選択します。

プロセスを編集するには

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

プロセスを削除するには

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

CPUアフィニティ

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

CPUクランプ

CPUクランプは、プロセスがCPU処理能力の指定された割合を超えて使用するのを防ぎます。WEMは、設定した指定のCPU使用率に達すると、そのプロセスを「スロットル」(または「クランプ」)します。これにより、プロセスが大量のCPUを消費するのを防ぐことができます。
注:
  • CPUクランプは、計算コストが高いブルートフォースアプローチです。問題のあるプロセスのCPU使用率を人為的に低く保つには、CPUスパイク保護を使用すると同時に、そのようなプロセスに静的なCPU優先度とCPUアフィニティを割り当てる方が適切です。CPUクランプは、リソース管理が非常に苦手でありながら、優先度を下げることができないプロセスを制御する場合に最適です。
  • プロセスにCPU処理能力の割合を適用し、後で同じプロセスに異なる割合を設定した場合は、変更を有効にするためにエージェントホスト設定の更新を選択します。
設定するクランプの割合は、サーバー内の個々のCPUの総電力に適用され、そのCPUに含まれる個々のコアには適用されません。(つまり、クアッドコアCPUでの10%は、CPU全体の10%であり、1つのコアの10%ではありません)。
プロセスクランプを有効にする。プロセスクランプを有効にします。
追加。実行可能ファイル名(例: notepad.exe)でプロセスを追加します。
削除。強調表示されたプロセスをクランプリストから削除します。
編集。特定のプロセスに入力された値を編集します。
ヒント:
  • WEMがプロセスをクランプしている場合、WEMクライアントが初期化するウォッチリストにそのプロセスを追加します。これを表示することで、プロセスがクランプされていることを確認できます。
  • プロセスモニターを確認し、CPU消費量がクランプの割合を超えないことを確認することで、CPUクランプが機能していることを検証することもできます。