第3章 PerformanceProfile [performance.openshift.io/v2]
- 説明
- PerformanceProfile は performanceprofiles のスキーマです。
- 型
-
object
3.1. 仕様
プロパティー | 型 | 説明 |
---|---|---|
|
| APIVersion はオブジェクトのこの表現のバージョンスキーマを定義します。サーバーは認識されたスキーマを最新の内部値に変換し、認識されない値は拒否することがあります。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources を参照してください。 |
|
| kind はこのオブジェクトが表す REST リソースを表す文字列の値です。サーバーはクライアントが要求を送信するエンドポイントからこれを推測できる場合があります。これを更新することはできません。CamelCase を使用します。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds を参照してください。 |
| 標準オブジェクトのメタデータ。詳細は、https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata を参照してください。 | |
|
| PerformanceProfileSpec は、PerformanceProfile の望ましい状態を定義します。 |
|
| PerformanceProfileStatus は、PerformanceProfile の観測された状態を定義します。 |
3.1.1. .spec
- 説明
- PerformanceProfileSpec は、PerformanceProfile の望ましい状態を定義します。
- 型
-
object
- 必須
-
cpu
-
nodeSelector
-
プロパティー | 型 | 説明 |
---|---|---|
|
| 追加のカーネル引数。 |
|
| CPU は、CPU 関連のパラメーターのセットを定義します。 |
|
| GloballyDisableIrqLoadBalancing は、分離された CPU セットの IRQ 負荷分散を無効にするかどうかを切り替えます。オプションを "true" に設定すると、分離された CPU セットの IRQ 負荷分散が無効になります。オプションを "false" に設定すると、すべての CPU 間で IRQ を分散できます。ただし、irq-load-balancing.crio.io/cpu-quota.crio.io アノテーションを使用すると、Pod の CPU ごとに IRQ の負荷分散を無効にできます。デフォルトは "false" です。 |
|
| HardwareTuning は、分離された CPU と予約された CPU の CPU 周波数のセットを定義します。 |
|
| HugePages は、huge page に関連するパラメーターのセットを定義します。huge page には複数のサイズ値を同時に設定することが可能です。たとえば、hugepages は 1G と 2M に設定できます。どちらの値もパフォーマンスプロファイルコントローラーによってノードに設定されます。hugepages のデフォルトサイズを 1G に設定すると、ノードから 2M に関連するフォルダーがすべて削除され、ノードに 2M の hugepages を設定できなくなることに注意することが重要です。 |
|
| MachineConfigLabel は、Operator が作成する MachineConfig に追加するラベルを定義します。このパフォーマンスプロファイルを対象とする MachineConfigPool の MachineConfigSelector で使用する必要があります。デフォルトは、"machineconfiguration.openshift.io/role=<NodeSelector ラベルキーと同じロール>" です。 |
|
| MachineConfigPoolSelector は、Operator によって作成された KubeletConfigs などのリソースの MachineConfigPoolSelector で使用する MachineConfigPool ラベルを定義します。デフォルトは、"machineconfiguration.openshift.io/role=<NodeSelector ラベルキーと同じロール>" です。 |
|
| Net は、ネットワーク関連の機能のセットを定義します。 |
|
| NodeSelector は、Operator によって作成された Tuned などのリソースの NodeSelectors で使用するノードラベルを定義します。ほとんどの場合、このパフォーマンスプロファイルを対象とする MachineConfigPool の NodeSelector 内のノードラベルと一致しますが、必ずしも一致する必要はありません。machineConfigLabels または machineConfigPoolSelector が設定されていない場合、前述のフィールドのデフォルト値を計算できるように、<domain>/<role>: "" という特定の NodeSelector 形式が必要です。 |
|
| NUMA は、トポロジーを意識したアフィニティーに関連するオプションを定義します。 |
|
| RealTimeKernel は、リアルタイムカーネル関連のパラメーターのセットを定義します。設定されていない場合、RT カーネルはインストールされません。 |
|
| WorkloadHints は、さまざまな種類のワークロードのヒントを定義します。これにより、ノードに適用する必要があるチューニング済み引数とカーネル引数の正確なセットを定義できます。 |
3.1.2. .spec.cpu
- 説明
- CPU は、CPU 関連のパラメーターのセットを定義します。
- 型
-
object
- 必須
-
isolated
-
reserved
-
プロパティー | 型 | 説明 |
---|---|---|
|
| BalanceIsolated は、分離された CPU セットを負荷分散ワークロードの対象とするどうかを切り替えます。このオプションを "false" に設定すると、分離された CPU セットは静的になります。つまり、複数の CPU 間で機能するために、ワークロードが各スレッドを特定の CPU に明示的に割り当てる必要があります。これを "true" に設定すると、CPU 間でワークロードを分散できます。これを "false" に設定すると、保証されたワークロードのパフォーマンスが最も予測可能なものになりますが、アプリケーションが CPU 負荷分散の複雑さを肩代わりすることになります。デフォルトは "true" です。 |
|
| Isolated は、アプリケーションスレッドに可能な限り最大の実行時間を与えるために使用する CPU のセットを定義します。つまり、CPU からできるだけ多くの余分なタスクを削除することになります。CPU マネージャーが、ワークロードを実行するために、予約済み CPU を除く任意の CPU を選択できることに注意することが重要です。ワークロードを分離された CPU 上で確実に実行するには、次の条件を満たす必要があります。1. 予約済み CPU と分離された CPU の集合に、すべてのオンライン CPU が含まれている必要があります。2. 分離された CPU のフィールドが予約済み CPU のフィールドを補完するものである必要があります。 |
|
| Offline は、オフラインに設定して使用しない CPU のセットを定義します。 |
|
| Reserved は、kubelet によって開始されたコンテナーワークロードに使用しない CPU のセットを定義します。 |
|
| Shared は、すでにワークロードによって使用されている分離された排他的リソースに加えて、排他的ではない追加の CPU を必要とする保証されたワークロード間で共有される CPU セットを定義します。 |
3.1.3. .spec.hardwareTuning
- 説明
- HardwareTuning は、分離された CPU と予約された CPU の CPU 周波数のセットを定義します。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| IsolatedCpuFreq は、分離された CPU に設定する最小周波数を定義します。 |
|
| ReservedCpuFreq は、予約済み CPU に設定する最小周波数を定義します。 |
3.1.4. .spec.hugepages
- 説明
- HugePages は、huge page に関連するパラメーターのセットを定義します。huge page には複数のサイズ値を同時に設定することが可能です。たとえば、hugepages は 1G と 2M に設定できます。どちらの値もパフォーマンスプロファイルコントローラーによってノードに設定されます。hugepages のデフォルトサイズを 1G に設定すると、ノードから 2M に関連するフォルダーがすべて削除され、ノードに 2M の hugepages を設定できなくなることに注意することが重要です。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| DefaultHugePagesSize は、カーネルブートパラメーター配下の huge page のデフォルトサイズを定義します。 |
|
| Pages は、起動時に割り当てる huge page を定義します。 |
|
| HugePage は、割り当てられる特定サイズの huge page の数を定義します。 |
3.1.5. .spec.hugepages.pages
- 説明
- Pages は、起動時に割り当てる huge page を定義します。
- 型
-
array
3.1.6. .spec.hugepages.pages[]
- 説明
- HugePage は、割り当てられる特定サイズの huge page の数を定義します。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| Count は、huge page の数を定義し、'hugepages' カーネルブートパラメーターにマップします。 |
|
| Node は、huge page を割り当てる NUMA ノードを定義します。指定されていない場合、ページは NUMA ノード間で均等に割り当てられます。 |
|
| Size は、huge page のサイズを定義し、'hugepagesz' カーネルブートパラメーターにマップします。 |
3.1.7. .spec.net
- 説明
- Net は、ネットワーク関連の機能のセットを定義します。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| Devices には、CPU.Reserved と等しい netqueue の数を使用して設定されるネットワークデバイス表現のリストを含めます。デバイスが指定されていない場合、デフォルトはすべてのデバイスです。 |
|
| Device は、デバイス名、ベンダー ID、モデル ID、PCI パス、MAC アドレスなど、いくつかのオプションでネットワークデバイスを表す方法を定義します。 |
|
| UserLevelNetworking を有効にすると、すべてのネットワークデバイスまたは指定されたネットワークデバイスのキューサイズが予約済み CPU の量に設定されます。デフォルトは "false" です。 |
3.1.8. .spec.net.devices
- 説明
- Devices には、CPU.Reserved と等しい netqueue の数を使用して設定されるネットワークデバイス表現のリストを含めます。デバイスが指定されていない場合、デフォルトはすべてのデバイスです。
- 型
-
array
3.1.9. .spec.net.devices[]
- 説明
- Device は、デバイス名、ベンダー ID、モデル ID、PCI パス、MAC アドレスなど、いくつかのオプションでネットワークデバイスを表す方法を定義します。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| 16 ビットの 16 進数として表されるネットワークデバイス ID (モデル)。 |
|
| 照合するネットワークデバイス名。正または負のシェルスタイルのワイルドカードの構文を使用します。 |
|
| 16 ビットの 16 進数として表されるネットワークデバイスベンダー ID。 |
3.1.10. .spec.numa
- 説明
- NUMA は、トポロジーを意識したアフィニティーに関連するオプションを定義します。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| TopologyManager が有効な場合に適用されるポリシーの名前。Operator のデフォルトは "best-effort" です。 |
3.1.11. .spec.realTimeKernel
- 説明
- RealTimeKernel は、リアルタイムカーネル関連のパラメーターのセットを定義します。設定されていない場合、RT カーネルはインストールされません。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| Enabled は、リアルタイムカーネルパッケージをインストールするかどうかを定義します。デフォルトは "false" です。 |
3.1.12. .spec.workloadHints
- 説明
- WorkloadHints は、さまざまな種類のワークロードのヒントを定義します。これにより、ノードに適用する必要があるチューニング済み引数とカーネル引数の正確なセットを定義できます。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| HighPowerConsumption は、ノードを高電力消費モードに設定するかどうかを定義します。このフラグは電力消費に影響しますが、CPU のレイテンシーが改善されます。デフォルトは false です。 |
|
| MixedCpus は、ノードで mixed-cpu-node-plugin を有効にします。デフォルトは false です。 |
|
| PerPodPowerManagement は、ノードに Pod ごとの電源管理を設定する必要があるかどうかを定義します。PerPodPowerManagement ヒントと HighPowerConsumption ヒントを同時に有効にすることはできません。デフォルトは false です。 |
|
| RealTime は、ノードをリアルタイムワークロード用に設定する必要があるかどうかを定義します。デフォルトは true です。 |
3.1.13. .status
- 説明
- PerformanceProfileStatus は、PerformanceProfile の観測された状態を定義します。
- 型
-
object
プロパティー | 型 | 説明 |
---|---|---|
|
| Conditions は、現在の状態として観察される最新の状態を表します。 |
|
| Condition は、Operator の調整機能の状態を表します。 |
|
| RuntimeClass には、Operator によって作成された RuntimeClass リソースの名前が含まれます。 |
|
| Tuned は、この Operator によって生成されたチューニング値を含む Tuned カスタムリソースオブジェクトを指します。 |
3.1.14. .status.conditions
- 説明
- Conditions は、現在の状態として観察される最新の状態を表します。
- 型
-
array
3.1.15. .status.conditions[]
- 説明
- Condition は、Operator の調整機能の状態を表します。
- 型
-
object
- 必須
-
status
-
type
-
プロパティー | 型 | 説明 |
---|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| ConditionType は、Operator の調整機能の状態です。 |