CPU管理

最終公開日 : Nov 13, 2026
これらの設定により、CPU使用率を最適化できます。

CPU管理設定

Processes can run across all cores and can use up as much CPU as they want. In Workspace Environment Management™ (WEM), CPU Management Settings lets you limit how much CPU capacity individual processes can use. CPU spike protection is not designed to reduce overall CPU usage. It is designed to reduce the impact on user experience by processes that consume an excessive percentage of CPU Usage.
When CPU spike protection is enabled, if a process reaches a specified threshold, WEM automatically lowers the priority of the process for a certain time. Then, when a new application is launched, it has a higher priority than the lower-priority process and the system will continue to run smoothly.
CPUスパイク保護は、各プロセスを迅速な「スナップショット」で検査します。プロセスの平均負荷が、指定されたサンプル時間に対して指定された使用制限を超えると、その優先度は直ちに低下します。指定された時間が経過すると、プロセスのCPU優先度は以前の値に戻ります。プロセスは「スロットリング」されません。CPU Clampingとは異なり、優先度のみが低下します。
CPUスパイク保護は、個々のプロセスのインスタンスが少なくとも1つしきい値を超えるまでトリガーされません。言い換えれば、CPU消費量全体が指定されたしきい値を超えても、少なくとも1つのプロセスインスタンスがしきい値を超えない限り、CPUスパイク保護はトリガーされません。しかし、そのプロセスインスタンスがCPUスパイク保護をトリガーすると、「Enable Intelligent CPU Optimization」オプションが有効になっている場合、同じプロセスの新しいインスタンスは(CPU)最適化されます。
Whenever a specific process triggers CPU spike protection, the event is recorded in the agent's local database. The agent records trigger events for each user separately. This means that CPU optimization for a specific process for user1 does not affect the behavior of the same process for user2.
For example, if Internet Explorer is sometimes consuming 50–60% of CPU, you can use CPU spike protection to target only those iexplore.exe instances that are threatening VDA performance. (By contrast, CPU clamping would apply to all processes.)
同じVDAにログオンしている他のユーザーに影響を与えない、環境に最適な値を決定するために、サンプル時間を試すことをお勧めします。

CPUスパイク保護

注:
  • 以下の設定における「CPU使用率」は、物理マシンまたは仮想マシンの「論理プロセッサ」に基づいています。CPUの各コアは、Windowsと同様に論理プロセッサと見なされます。たとえば、1つの6コアCPUを搭載した物理マシンは、12個の論理プロセッサを持つと見なされます(Hyper-Threading Technologyによりコアが2倍になります)。8個のCPUを搭載し、それぞれ12コアを持つ物理マシンは、96個の論理プロセッサを持ちます。2つの4コアCPUで構成されたVMは、8個の論理プロセッサを持ちます。
  • 仮想マシンにも同じことが当てはまります。たとえば、8個のCPUを搭載し、それぞれ12コア(96個の論理プロセッサ)を持つ物理マシンがあり、4つのマルチセッションOS VDA VMをサポートしているとします。各VMは2つの4コアCPU(8個の論理プロセッサ)で構成されています。VM上でCPUスパイク保護をトリガーするプロセスが、そのコアの半分を使用するように制限するには、Limit CPU Core Usageを4(VMの論理プロセッサの半分)に設定し、48(物理マシンの論理プロセッサの半分)には設定しません。
CPUスパイク保護を有効にする。指定された期間(Limit Sample Timeフィールドで指定)にCPU使用率の指定されたパーセンテージを超えた場合、プロセスのCPU優先度を一定期間(Idle Priority Timeフィールドで指定)下げます。
  • 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優先度レベルに基づいてそれらの間で共有されます。プロセスのCPU優先度レベルが高いほど、より多くのプロセッサ時間が割り当てられます。
注:
特定のプロセスでCPU優先度レベルを低く設定しても、全体的なCPU消費量が必ずしも減少するわけではありません。他のプロセス(CPU優先度が高い)がCPU使用率に影響を与えている可能性があります。
プロセス優先度を有効にする。選択すると、プロセスのCPU優先度を手動で設定できます。

プロセスを追加するには

  1. 「追加」をクリックし、「プロセスCPU優先度の追加」ダイアログボックスに詳細を入力します。
  2. 「OK」をクリックしてダイアログボックスを閉じます。
  3. 「適用」をクリックして設定を適用します。ここで設定したプロセスCPU優先度は、エージェントが新しい設定を受信し、プロセスが再起動されたときに有効になります。
    プロセス名。拡張子を含まないプロセスの実行可能ファイル名です。たとえば、Windows Explorer (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消費がクランプの割合を超えないことを確認することでも検証できます。