11.8. PTP ハードウェアの FIFO 優先スケジューリングの設定
低遅延のパフォーマンスを確保する必要のある通信業者や他のデプロイメント設定では、PTP デーモンスレッドは、制約された CPU フットプリントで、残りのインフラストラクチャーのコンポーネントと一緒に、実行されます。デフォルトでは、PTP スレッドは SCHED_OTHER
ポリシーで実行されます。負荷が高いと、エラーなしで運用する必要のある、これらのスレッドのスケジューリングでレイテンシーが発生する可能性があります。
スケジューリングのレイテンシーでエラーが発生する可能性を軽減するために、SCHED_FIFO
ポリシーでスレッドを実行できるように、PTP Operator の linuxptp
サービスを設定できます。Ptp Config
CR に SCHED_FIFO
が設定されている場合には、ptp4l
と phc2sys
は、Ptp Config
CR の ptp Scheduling Priority
フィールドで設定された優先順位で、chrt
の下の親コンテナーで実行されます。
ptp Scheduling Policy
の設定はオプションで、レイテンシーエラーが発生している場合にのみ必要となります。
手順
Ptp Config
CR プロファイルを編集します。$ oc edit PtpConfig -n openshift-ptp
ptp Scheduling Policy
とptp Scheduling Priority
フィールドを変更します。apiVersion: ptp.openshift.io/v1 kind: PtpConfig metadata: name: <ptp_config_name> namespace: openshift-ptp ... spec: profile: - name: "profile1" ... ptpSchedulingPolicy: SCHED_FIFO 1 ptpSchedulingPriority: 10 2
-
保存して終了すると、
Ptp Config
CR に変更が適用されます。
検証
Ptp Config
CR が適用されたlinuxptp-daemon
Pod と対応するノードの名前を取得します。$ oc get pods -n openshift-ptp -o wide
出力例
NAME READY STATUS RESTARTS AGE IP NODE linuxptp-daemon-gmv2n 3/3 Running 0 1d17h 10.1.196.24 compute-0.example.com linuxptp-daemon-lgm55 3/3 Running 0 1d17h 10.1.196.25 compute-1.example.com ptp-operator-3r4dcvf7f4-zndk7 1/1 Running 0 1d7h 10.129.0.61 control-plane-1.example.com
ptp4l
プロセスが、更新されたchrt
FIFO 優先度で実行されていることを確認します。$ oc -n openshift-ptp logs linuxptp-daemon-lgm55 -c linuxptp-daemon-container|grep chrt
出力例
I1216 19:24:57.091872 1600715 daemon.go:285] /bin/chrt -f 65 /usr/sbin/ptp4l -f /var/run/ptp4l.0.config -2 --summary_interval -4 -m