第3章 PerformanceProfile [performance.openshift.io/v2]
- 説明
- PerformanceProfile は、performanceprofiles API のスキーマです。
- 型
-
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 は、IRQ ロードバランシングを分離 CPU セットに対して無効にするかどうかを切り替えます。このオプションを true に設定すると、分離 CPU セットの IRQ ロードバランシングが無効になります。オプションを "false" に設定すると、irq-load-balancing.crio.io/cpu-quota.crio.io アノテーションを使用する場合は、IRQ がすべての CPU 間で分散されます。ただし、IRQ-load-balancing.crio.io/cpu-quota.crio.io アノテーションを使用すると、Pod の CPU ごとに IRQ を分散させることができます。デフォルトは False です。 |
|
| hugepages は、Huge Page 関連のパラメーターのセットを定義します。複数のサイズで同時に Huge Page を設定することができます。たとえば、hugepages は 1G と 2M で設定できます。いずれの値も Performance Profile コントローラーによってノードに設定されます。hugepages のデフォルトサイズを 1G に設定すると、ノードから 2M 関連のフォルダーがすべて削除され、ノードで 2M の Huge Page を設定することができないことに注意してください。 |
|
| MachineConfigLabel は、Operator が作成する MachineConfig に追加するラベルを定義します。これは、このパフォーマンスプロファイルを対象とする MachineConfigPool の MachineConfigSelector に置き換える必要があります。デフォルトは、NodeSelector label key> のように "machineconfiguration.openshift.io/role=<same role です。 |
|
| machineConfigPoolSelector は、Operator によって作成された KubeletConfigs などのリソースの MachineConfigPoolSelector で使用する MachineConfigPool ラベルを定義します。デフォルトは、NodeSelector label key> のように "machineconfiguration.openshift.io/role=<same role です。 |
|
| net は、ネットワーク関連機能のセットを定義します |
|
| nodeSelector は、Operator によって作成される Tuned などのリソースの NodeSelectors で使用する Node ラベルを定義します。おそらく、このパフォーマンスプロファイルを対象とする MachineConfigPool の NodeSelector のノードラベルと一致する必要はありません。machineConfigLabels または machineConfigPoolSelector が設定されていない場合、前述のフィールドのデフォルト値を計算できるようにするために、特定の NodeSelector 形式 <domain>/<role>: "" が発生することが予想されます。 |
|
| NUMA は、トポロジー対応アフィニティーに関連するオプションを定義します |
|
| realTimeKernel は、リアルタイムカーネル関連のパラメーターのセットを定義します。設定されていない場合、RT カーネルがインストールされません。 |
|
| workloadHints は、さまざまなタイプのワークロードのヒントを定義します。これにより、ノードの上に適用する必要がある tuned およびカーネル引数のセットを正確に定義できます。 |
3.1.2. .spec.cpu
- 説明
- CPU は、CPU 関連のパラメーターのセットを定義します。
- 型
-
object
- 必須
- 分離
-
reserved
プロパティー | タイプ | 説明 |
---|---|---|
|
| BalanceIsolated は、分離された CPU セットが負荷分散の作業の対象となるかどうかを切り替えます。このオプションを "false" に設定すると、分離 CPU セットは静的になります。つまり、複数の CPU で作業するには、ワークロードは各スレッドを明示的に特定の CPU に割り当てる必要があります。これを true に設定すると、ワークロードを CPU 全体で分散できます。これを false に設定すると、保証されたワークロードに対して最も予測可能なパフォーマンスが得られますが、CPU の負荷分散の複雑さはアプリケーションにオフロードされます。デフォルトは True です。 |
分離 |
| isolated は、可能な限りアプリケーションスレッドに最もランタイムを与えるために使用される CPU のセットを定義します。つまり、CPU から多くの余分なタスクを削除することを意味します。CPU マネージャーは、予約された CPU 以外のワークロードを実行するために任意の CPU を選択できることに注意することが重要です。ワークロードが分離された CPU 上で実行されるようにするため:1.予約済み CPU と分離された CPU の集合には、すべてのオンライン CPU 2 が含まれている必要があります。isolated CPUs フィールドは、予約された CPU フィールドで補完的なものである必要があります。 |
|
| offline は、未使用の CPU セットを定義し、オフラインに設定する |
|
| reserved は、kubelet によって開始されるコンテナーワークロードに使用されない CPU のセットを定義します。 |
|
| Shared は、これらのワークロードによってすでに使用されている分離された排他的リソースとともに、排他的ではない追加の CPU を必要とする、保証されたワークロード間で共有される CPU のセットを定義します。 |
3.1.3. .spec.hugepages
- 説明
- hugepages は、Huge Page 関連のパラメーターのセットを定義します。複数のサイズで同時に Huge Page を設定することができます。たとえば、hugepages は 1G と 2M で設定できます。いずれの値も Performance Profile コントローラーによってノードに設定されます。hugepages のデフォルトサイズを 1G に設定すると、ノードから 2M 関連のフォルダーがすべて削除され、ノードで 2M の Huge Page を設定することができないことに注意してください。
- 型
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| DefaultHugePagesSize は、カーネルブートパラメーターでヒュージページのデフォルトサイズを定義します。 |
|
| Page は、起動時に割り当てる Huge Page を定義します。 |
|
| Huge Page は、特定のサイズに割り当てられた Huge Page の数を定義します。 |
3.1.4. spec.hugepages.pages
- 説明
- Page は、起動時に割り当てる Huge Page を定義します。
- 型
-
array
3.1.5. .spec.hugepages.pages[]
- 説明
- Huge Page は、特定のサイズに割り当てられた Huge Page の数を定義します。
- 型
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| count は、Huge Page の量を定義します。これは、'hugepages' カーネルブートパラメーターにマッピングします。 |
|
| node は、hugepages が割り当てられる NUMA ノードを定義します。指定されていない場合、ページは NUMA ノード間で均等に割り当てられます |
|
| size は Huge Page サイズを定義し、'hugepagesz' カーネルブートパラメーターにマッピングします。 |
3.1.6. .spec.net
- 説明
- net は、ネットワーク関連機能のセットを定義します
- 型
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| デバイス には、CPU.Reserved と等しい netqueue カウントで設定されるネットワークデバイス表現のリストが含まれています。デバイスを指定しないと、デフォルトはすべてのデバイスになります。 |
devices |
| デバイスは、デバイス名、ベンダー ID、モデル ID、PCI パス、MAC アドレスなどの複数のオプションでネットワークデバイスを表す方法を定義します。 |
|
| userLevelNetworking の場合:すべてまたは指定されたネットワークデバイスキューのサイズを予約済み CPU の量に設定します。デフォルトは False です。 |
3.1.7. .spec.net.devices
- 説明
- デバイス には、CPU.Reserved と等しい netqueue カウントで設定されるネットワークデバイス表現のリストが含まれています。デバイスを指定しないと、デフォルトはすべてのデバイスになります。
- 型
-
array
3.1.8. .spec.net.devices[]
- 説明
- デバイスは、デバイス名、ベンダー ID、モデル ID、PCI パス、MAC アドレスなどの複数のオプションでネットワークデバイスを表す方法を定義します。
- 型
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| ネットワークデバイス ID (モデル)は、16 ビットの 16 進数の数字として再準備されます。 |
|
| 照合するネットワークデバイス名。正または負のシェルスタイルのワイルドカードの構文を使用します。 |
|
| ネットワークデバイスベンダー ID は、16 ビットの 10 進数として再規定されています。 |
3.1.9. .spec.numa
- 説明
- NUMA は、トポロジー対応アフィニティーに関連するオプションを定義します
- 型
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| TopologyManager が有効になっている Operator のデフォルトで best-effort に設定されている場合に適用されるポリシーの名前 |
3.1.10. .spec.realTimeKernel
- 説明
- realTimeKernel は、リアルタイムカーネル関連のパラメーターのセットを定義します。設定されていない場合、RT カーネルがインストールされません。
- 型
-
object
プロパティー | タイプ | Description |
---|---|---|
|
| enabled は、リアルタイムカーネルパッケージをインストールする必要があるかどうかを定義します。デフォルトは False です。 |
3.1.11. spec.workloadHints
- 説明
- workloadHints は、さまざまなタイプのワークロードのヒントを定義します。これにより、ノードの上に適用する必要がある tuned およびカーネル引数のセットを正確に定義できます。
- 型
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| highPowerConsumption は、ノードを高電力消費モードで設定する必要があるかどうかを定義します。フラグは消費電力に影響しますが、CPU レイテンシーが改善されます。デフォルトは false です。 |
|
| MixedCpus は、ノードで mixed-cpu-node-plugin を有効にします。デフォルトは false です。 |
|
| perPodPowerManagement は、ノードを Pod の電源管理ごとに設定する必要があるかどうかを定義します。perPodPowerManagement と HighPowerConsumption ヒントは、一緒に有効にすることはできません。デフォルトは false です。 |
|
| realtime は、ノードをリアルタイムのワークロード用に設定すべきかどうかを定義します。デフォルトは true です。 |
3.1.12. .status
- 説明
- PerformanceProfileStatus は、PerformanceProfile の監視状態を定義します。
- 型
-
object
プロパティー | タイプ | 説明 |
---|---|---|
|
| 条件は、現在の状態の最新の利用可能な観測を表します。 |
|
| 条件は、Operator の調整機能の状態を表します。 |
|
| RuntimeClass には、Operator によって作成される RuntimeClass リソースの名前が含まれています。 |
|
| TuneD は、この Operator によって生成されたチューニング値が含まれる Tuned カスタムリソースオブジェクトを指します。 |
3.1.13. .status.conditions
- 説明
- 条件は、現在の状態の最新の利用可能な観測を表します。
- 型
-
array
3.1.14. .status.conditions[]
- 説明
- 条件は、Operator の調整機能の状態を表します。
- 型
-
object
- 必須
-
status
-
type
-
プロパティー | タイプ | 説明 |
---|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| ConditionType は、Operator の調整機能の状態です。 |