10.7. チューニング変更の適用の延期


管理者は、Node Tuning Operator (NTO) を使用して、実行中のシステム上のカスタムリソース (CR) を更新し、チューニングの変更を行います。たとえば、チューニングするオブジェクトの [sysctl] セクションで sysctl パラメーターを更新または追加することがあります。管理者がチューニングの変更を適用すると、NTO は TuneD にすべての設定を再処理するように要求します。その結果、チューニングされるプロセスですべてのチューニングがロールバックされてから再適用されます。

レイテンシーの影響を受けやすいアプリケーションでは、パフォーマンスが一時的に低下する可能性があるため、TuneD プロファイルの削除と再適用が許容されない場合があります。これは、CPU パーティショニングを実行し、パフォーマンスプロファイルを使用してプロセスまたは割り込みのアフィニティーを管理する設定の場合に特に重要です。この問題を回避するために、OpenShift Container Platform ではチューニングの変更を適用するための新しい方法が導入されました。OpenShift Container Platform 4.17 より前は、利用できる方法は immediate だけでした。この方法では、変更がすぐに適用され、多くの場合、チューニングされた再起動がトリガーされていました。

これに加えて次の方法がサポートされています。

  • always: すべての変更が次回のノードの再起動時に適用されます。
  • update: チューニングの変更によって TuneD プロファイルが変更されると、デフォルトですぐに適用され、できるだけ早く反映されます。チューニングの変更によって TuneD プロファイルが変更されず、プロファイルの値がその場で変更された場合、変更は always として処理されます。

この機能を有効にするには、アノテーション tuned.openshift.io/deferred を追加します。次の表は、アノテーションに使用できる値をまとめたものです。

Expand
アノテーション値説明

missing

変更がすぐに適用されます。

always

変更が次回のノードの再起動時に適用されます。

update

変更によってプロファイルが変更された場合はすぐに適用されます。それ以外の場合は次のノードの再起動時に適用されます。

次の例は、always 方式を使用して kernel.shmmni sysctl パラメーターに変更を適用する方法を示しています。

apiVersion: tuned.openshift.io/v1
kind: Tuned
metadata:
  name: performance-patch
  namespace: openshift-cluster-node-tuning-operator
  annotations:
    tuned.openshift.io/deferred: "always"
spec:
  profile:
    - name: performance-patch
      data: |
        [main]
        summary=Configuration changes profile inherited from performance created tuned
        include=openshift-node-performance-performance 
1

        [sysctl]
        kernel.shmmni=8192 
2

  recommend:
    - machineConfigLabels:
        machineconfiguration.openshift.io/role: worker-cnf 
3

      priority: 19
      profile: performance-patch

1
include ディレクティブは、openshift-node-performance-performance プロファイルを継承するために使用します。これは、プロファイルから必要な設定が欠落するのを防ぐためのベストプラクティスです。
2
kernel.shmmni sysctl パラメーターを 8192 に変更します。
3
machineConfigLabels フィールドは、worker-cnf ロールをターゲットにするために使用します。プロファイルが正しいノードにのみ適用されるように、MachineConfigPool リソースを設定します。

10.7.1. チューニング変更の適用の延期: 例

次の実例では、Node Tuning Operator を使用してチューニング変更の適用を延期する方法を説明します。

前提条件

  • cluster-admin ロールへのアクセス権がある。
  • クラスターにパフォーマンスプロファイルを適用した。
  • プロファイルが指定のノードにのみ適用されるように、MachineConfigPool リソース (worker-cnf など) が設定されている。

手順

  1. 次のコマンドを実行して、クラスターに現在適用されているプロファイルを確認します。

    $ oc -n openshift-cluster-node-tuning-operator get tuned

    出力例

    NAME                                     AGE
    default                                  63m
    openshift-node-performance-performance   21m

  2. 次のコマンドを実行して、クラスター内のマシン設定プールを確認します。

    $ oc get mcp

    出力例

    NAME         CONFIG                                                 UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
    master       rendered-master-79a26af9f78ced61fa8ccd309d3c859c       True      False      False      3              3                   3                     0                      157m
    worker       rendered-worker-d9352e91a1b14de7ef453fa54480ce0e       True      False      False      2              2                   2                     0                      157m
    worker-cnf   rendered-worker-cnf-f398fc4fcb2b20104a51e744b8247272   True      False      False      1              1                   1                     0                      92m

  3. 次のコマンドを実行して、現在適用されているパフォーマンスプロファイルの情報を表示します。

    $ oc describe performanceprofile performance | grep Tuned

    出力例

    Tuned:                   openshift-cluster-node-tuning-operator/openshift-node-performance-performance

  4. kernel.shmmni sysctl パラメーターの既存の値を確認します。

    1. 次のコマンドを実行してノード名を表示します。

      $ oc get nodes

      出力例

      NAME                          STATUS   ROLES                  AGE    VERSION
      ip-10-0-26-151.ec2.internal   Ready    worker,worker-cnf      116m   v1.30.6
      ip-10-0-46-60.ec2.internal    Ready    worker                 115m   v1.30.6
      ip-10-0-52-141.ec2.internal   Ready    control-plane,master   123m   v1.30.6
      ip-10-0-6-97.ec2.internal     Ready    control-plane,master   121m   v1.30.6
      ip-10-0-86-145.ec2.internal   Ready    worker                 117m   v1.30.6
      ip-10-0-92-228.ec2.internal   Ready    control-plane,master   123m   v1.30.6

    2. 次のコマンドを実行して、ノード ip-10-0-32-74.ec2.internalkernel.shmmni sysctl パラメーターの現在の値を表示します。

      $ oc debug node/ip-10-0-26-151.ec2.internal  -q -- chroot host sysctl kernel.shmmni

      出力例

      kernel.shmmni = 4096

  5. kernel.shmmni sysctl パラメーターを 8192 に変更するプロファイルパッチ (例: perf-patch.yaml) を作成します。次の設定を適用し、always 方式を使用して、変更の適用を新しい手動再起動まで延期します。

    apiVersion: tuned.openshift.io/v1
    kind: Tuned
    metadata:
      name: performance-patch
      namespace: openshift-cluster-node-tuning-operator
      annotations:
        tuned.openshift.io/deferred: "always"
    spec:
      profile:
        - name: performance-patch
          data: |
            [main]
            summary=Configuration changes profile inherited from performance created tuned
            include=openshift-node-performance-performance 
    1
    
            [sysctl]
            kernel.shmmni=8192 
    2
    
      recommend:
        - machineConfigLabels:
            machineconfiguration.openshift.io/role: worker-cnf 
    3
    
          priority: 19
          profile: performance-patch
    1
    include ディレクティブは、openshift-node-performance-performance プロファイルを継承するために使用します。これは、プロファイルから必要な設定が欠落するのを防ぐためのベストプラクティスです。
    2
    kernel.shmmni sysctl パラメーターを 8192 に変更します。
    3
    machineConfigLabels フィールドは、worker-cnf ロールをターゲットにするために使用します。
  6. 次のコマンドを実行してプロファイルのパッチを適用します。

    $ oc apply -f perf-patch.yaml
  7. 次のコマンドを実行して、プロファイルのパッチが次のノードの再起動を待機していることを確認します。

    $ oc -n openshift-cluster-node-tuning-operator get profile

    出力例

    NAME                          TUNED                     APPLIED   DEGRADED   MESSAGE                                                                            AGE
    ip-10-0-26-151.ec2.internal   performance-patch         False     True       The TuneD daemon profile is waiting for the next node restart: performance-patch   126m
    ip-10-0-46-60.ec2.internal    openshift-node            True      False      TuneD profile applied.                                                             125m
    ip-10-0-52-141.ec2.internal   openshift-control-plane   True      False      TuneD profile applied.                                                             130m
    ip-10-0-6-97.ec2.internal     openshift-control-plane   True      False      TuneD profile applied.                                                             130m
    ip-10-0-86-145.ec2.internal   openshift-node            True      False      TuneD profile applied.                                                             126m
    ip-10-0-92-228.ec2.internal   openshift-control-plane   True      False      TuneD profile applied.                                                             130m

  8. 再起動する前に、kernel.shmmni sysctl パラメーターの値が変更されていないことを確認します。

    1. 次のコマンドを実行して、ノード ip-10-0-26-151.ec2.internalkernel.shmmni sysctl パラメーターへの performance-patch の変更が適用されていないことを確認します。

      $ oc debug node/ip-10-0-26-151.ec2.internal  -q -- chroot host sysctl kernel.shmmni

      出力例

      kernel.shmmni = 4096

  9. 次のコマンドを実行して、ノード ip-10-0-26-151.ec2.internal を再起動し、必要な変更を適用します。

    $ oc debug node/ip-10-0-26-151.ec2.internal  -q -- chroot host reboot&
  10. 別のターミナルウィンドウで次のコマンドを実行して、ノードが再起動したことを確認します。

    $ watch oc get nodes

    ノード ip-10-0-26-151.ec2.internalReady 状態に戻るまで待ちます。

  11. 次のコマンドを実行して、プロファイルのパッチが次のノードの再起動を待機していることを確認します。

    $ oc -n openshift-cluster-node-tuning-operator get profile

    出力例

    NAME                          TUNED                     APPLIED   DEGRADED   MESSAGE                                                                            AGE
    ip-10-0-20-251.ec2.internal   performance-patch         True      False      TuneD profile applied.                                                             3h3m
    ip-10-0-30-148.ec2.internal   openshift-control-plane   True      False      TuneD profile applied.                                                             3h8m
    ip-10-0-32-74.ec2.internal    openshift-node            True      True       TuneD profile applied.                                                             179m
    ip-10-0-33-49.ec2.internal    openshift-control-plane   True      False      TuneD profile applied.                                                             3h8m
    ip-10-0-84-72.ec2.internal    openshift-control-plane   True      False      TuneD profile applied.                                                             3h8m
    ip-10-0-93-89.ec2.internal    openshift-node            True      False      TuneD profile applied.                                                             179m

  12. 再起動後に kernel.shmmni sysctl パラメーターの値が変更されたことを確認します。

    1. 次のコマンドを実行して、kernel.shmmni sysctl パラメーターの変更がノード ip-10-0-32-74.ec2.internal に適用されていることを確認します。

      $ oc debug node/ip-10-0-32-74.ec2.internal  -q -- chroot host sysctl kernel.shmmni

      出力例

      kernel.shmmni = 8192

注記

もう一度再起動すると、kernel.shmmni sysctl パラメーターの元の値が復元されます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る