名前

uclampset - システムやプロセスにおける使用率クランプ属性を操作する

書式

uclampset [options] [-m uclamp_min] [-M uclamp_max] _command argument

uclampset [options] [-m uclamp_min] [-M uclamp_max] -p PID

説明

uclampset は、 既存の PID に対して、 使用率クランプ属性 (utilization clamping attributes) を設定または取得する。 また指定されたその属性を使って command を実行する。

使用率クランプは、 v5.3 において加わった新機能である。 タスクが稼働するにあたって、 利用できるリソース範囲についての情報を、 スケジューラーにヒントとして与えるものである。

タスクの使用率は、 周波数選択 (fequency selection) やタスク配置に影響する。 schedutil の cpufreq ガバナーだけが、 書き込み時において、 使用率クランプのヒントを解釈できる。 その他の cpufreq ガバナーサポートに関する詳細は、 カーネルのドキュメントを確認すること。

Arm の big.LITTLE のような、 非対称異種混合システム (asymmetric heterogeneous system) を利用している場合、 使用率クランプは、 タスク配置を切り替えるのに役立つ。 LITTLE コアの性能を超えた util_min 値によって、 ブーストされたタスクがあった場合、 スケジューラーは、 できる限り big コア上にそのタスクを配置しようとする。

同じように、 util_max が LITTLE コアの性能より小さい、 あるいは同じである場合、 たとえタスクの実際の使用率が最大であったとしても、 スケジューラーは、 タスクの配置をそのままとする決定を行う。

タスクの uclamp_min にゼロ以外の値を設定すると、 起動時のタスクを効率良くブーストさせ、 その使用率のままで起動させることができる。 value.

タスクにおける uclamp_max の値を 1024 未満とすると、 タスクを効率良く起動させ、 その使用率を上回らないようにすることができる。

使用率の範囲は [0:1024] である。 特別な値 -1 は、 システムのデフォルトをリセットする際に用いられる。

オプション

-m

util_min の値を設定する。

-M

util_max の値を設定する。

-a, --all-tasks

指定された PID に対応するすべてのタスク (スレッド) の使用率クランプ属性を、 設定または取得する。

-p, --pid

既存の PID に対しての操作を行い、 新たなタスクの起動は行わない。

-s, --system

システム全体のリソース使用の制約属性を、 設定または取得する。

-R, --reset-on-fork

SCHED_FLAG_RESET_ON_FORK フラグを設定する。

-v, --verbose

ステータス情報を表示する。

-h, --help

ヘルプを表示して終了する。

-V, --version

バージョンを表示して終了する。

使用法

デフォルトの動作は、 新たなコマンドを実行することである。

uclampset [-m uclamp_min] [-M uclamp_max] command [arguments]

また、 既存のタスクから使用率クランプ属性を取得することもできる。

uclampset -p PID

設定の場合は、以下のようにする。

uclampset -p PID [-m uclamp_min] [-M uclamp_max]

システム全体の属性を制御するには、 以下のようにする。

uclampset -s [-m uclamp_min] [-M uclamp_max]

パーミッション

プロセスのスケジューリング属性を変更するには、 ユーザーが CAP_SYS_NICE の権限を有していなければならない。 スケジューリング情報の取得は、 どのユーザーでも可能である。

注意

システム全体における使用率クランプ属性は、 タスクが利用できる許容範囲を制御するためにある。 デフォルトにおいて、 uclamp_minuclamp_max は 1024 に設定されている。 このことは、ユーザーがタスクを利用するにあたって、 使用率クランプの値は、 最大幅である [0:1024] での利用が可能であることを意味する。

たとえば以下を実行したとする。

uclampset -s -m 512 -M 700

上により、 どのタスクであっても、 512 以上にはブーストさせない。 そしてシステム内のタスクはすべて、 使用率の上限が 700 に設定される。 これにより、 システムの最大パフォーマンスを、 効率よく 700 で提供する。

カーネル上での正確な動作に関しては、 カーネルドキュメントを確認すること。

作者

関連項目

nice(1), renice(1), taskset(1), sched(7)

Linux のスケジューリングスキームの説明については、 sched_setscheduler(2) や sched_setattr(2) を参照のこと。

バグ報告

バグ報告は、 以下にある issue トラッカーを利用すること。 <https://github.com/util-linux/util-linux/issues>.

入手方法

uclampset コマンドは util-linux パッケージの一部であり、 以下からダウンロードできる。 Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.