24.5. CPU のチューニング


<domain>
  ...
  <cputune>
    <vcpupin vcpu="0" cpuset="1-4,^2"/>
    <vcpupin vcpu="1" cpuset="0,1"/>
    <vcpupin vcpu="2" cpuset="2,3"/>
    <vcpupin vcpu="3" cpuset="0,4"/>
    <emulatorpin cpuset="1-3"/>
    <shares>2048</shares>
    <period>1000000</period>
    <quota>-1</quota>
    <emulator_period>1000000</emulator_period>
    <emulator_quota>-1</emulator_quota>
  </cputune>
  ...
</domain>

図24.7 CPU のチューニング

すべてはオプションですが、ドメイン XML のこのセクションを構成するコンポーネントは以下のようになります。

表24.4 CPU チューニング要素

要素説明
<cputune>ドメインの CPU 調整可能パラメーターについての詳細を提供します。これはオプションです。
<vcpupin>ドメイン仮想 CPU が固定されるホスト物理マシンの物理 CPU を指定します。これが省略されていて、要素 <vcpu> の属性 cpuset が指定されていない場合、仮想 CPU はデフォルトですべての物理 CPU に固定されます。これには 2 つの属性が含まれ、属性 <vcpu>id を指定し、属性 cpuset は、要素 <vcpu> の属性 cpuset と同じになります。
<emulatorpin>ドメインのサブセットである「emulator」(<vcpu> を含まない) が固定されるホスト物理マシン CPU を指定します。これが省略されていて、要素 <vcpu> の属性 cpuset が指定されていない場合、「emulator」はデフォルトですべての物理 CPU に固定されます。これには、固定先となる物理 CPU を指定する 1 つの必須属性である cpuset が含まれます。要素 <vcpu> の属性 placementauto の場合、emulatorpin は許可されません。
<shares>ドメインの重み付け比例配分を指定します。これが省略されている場合、デフォルトは OS が指定するデフォルト値になります。値の単位がない場合、それは他の仮想ゲストマシンの設定との対比で計算されます。たとえば、ゲスト仮想マシンが 2048 の <shares> 値で設定されている場合、CPU 時間は 1024 の <shares> 値で設定されるゲスト仮想マシンの CPU 時間の 2 倍になります。
<period>施行間隔をマイクロ秒単位で指定します。<period> を使用することにより、ドメインの vcpu のそれぞれには、実行時間に相当する割り当てられたクォータを超える量の消費が許可されません。この値は 1000-1000000 の範囲内にある必要があります。<period> の後に値 0 が来る場合は、値なしを意味します。
<quota>マイクロ秒単位で許可される最大帯域幅を指定します。負の値の <quota> を持つドメインは、ドメインの帯域幅が無限であることを示し、つまりそれが帯域幅の制御が行われていないことを意味します。値は 1000 - 18446744073709551 の範囲内にするか、または 0 未満にする必要があります。0 の値を持つ quota は値なしを意味します。この機能を使用して、すべての vcpus が同じ速度で実行されるようにすることができます。
<emulator_period>施行間隔をマイクロ秒単位で指定します。<emulator_period> 内で、ドメインのエミュレータースレッド (仮想 CPU を除く) は、実行時間に相当する <emulator_quota> を超える量を消費することが許可されません。<emulator_period> 値は 1000 - 1000000 の範囲内にある必要があります。0 の値を持つ <emulator_period> は値なしを意味します。
<emulator_quota>マイクロ秒単位でドメインのエミュレータースレッドに許可される最大帯域幅を指定します (仮想 CPU を除く)。負の値の <emulator_quota> を持つドメインは、ドメインがエミュレータースレッド (仮想 CPU を除く) の無限の帯域幅を持つことを示し、つまり、それが帯域幅の制御が行われていないことを意味します。値は 1000 - 18446744073709551 の範囲内にするか、または 0 未満にする必要があります。0 の値を持つ <emulator_quota> は値なしを意味します。