23.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>

図23.7 CPU のチューニング

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

表23.4 CPU チューニング要素

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