4.5. Tuna の使用例
例4.1 特定 CPU へのタスク割り当て
以下の例では、4 つ以上のプロセッサーを持つシステムを使用し、すべての
ssh
スレッドを CPU 0 および 1 で実行し、CPU 2 および 3 のすべての http
スレッドを実行する方法を示しています。
#
tuna --cpus=0,1 --threads=ssh\* --move --cpus=2,3 --threads=http\* --move
上記のコマンド例は、以下の操作を順番に実行します。
- CPU 0 および 1 を選択します。
ssh
で始まるすべてのスレッドを選択します。- 選択したスレッドを選択した CPU に移動します。tuna は、
ssh
で始まるスレッドのアフィニティーマスクを適切な CPU に設定します。CPU は、0 および 1、16 進数マスクで0x3
、またはバイナリーで11
として表すことができます。 - CPU リストを 2 および 3 にリセットします。
http
で始まるすべてのスレッドを選択します。- 選択したスレッドを選択した CPU に移動します。Tuna は、
http
で始まるスレッドのアフィニティーマスクを適切な CPU に設定します。CPU は、2 および 3、16 進数マスクで0xC
、またはバイナリーでは1100
として表すことができます。
例4.2 現行設定の表示
以下の例は、
--show_threads
(-P
) パラメーターを使用して現行の設定を表示し、要求した変更が想定どおりに行われたことをテストします。
#
tuna--threads=gnome-sc\*
\--show_threads
\--cpus=0
\--move
\--show_threads
\--cpus=1
\--move
\--show_threads
\--cpus=+0
\--move
\--show_threads
thread ctxt_switches pid SCHED_ rtpri affinity voluntary nonvoluntary cmd 3861 OTHER 0 0,1 33997 58 gnome-screensav thread ctxt_switches pid SCHED_ rtpri affinity voluntary nonvoluntary cmd 3861 OTHER 0 0 33997 58 gnome-screensav thread ctxt_switches pid SCHED_ rtpri affinity voluntary nonvoluntary cmd 3861 OTHER 0 1 33997 58 gnome-screensav thread ctxt_switches pid SCHED_ rtpri affinity voluntary nonvoluntary cmd 3861 OTHER 0 0,1 33997 58 gnome-screensav
上記のコマンド例は、以下の操作を順番に実行します。
gnome-sc
で始まるすべてのスレッドを選択します。- 選択したスレッドを表示し、ユーザーがアフィニティーマスクと RT の優先度を確認できるようにします。
- CPU 0 を選択します。
gnome-sc
スレッドを選択した CPU (CPU 0)に移動します。- 移動の結果を表示します。
- CPU リストを 1 にリセットします。
gnome-sc
スレッドを選択した CPU (CPU 1)に移動します。- 移動の結果を表示します。
- CPU 0 を CPU リストに追加します。
gnome-sc
スレッドを選択した CPU (CPU 0 および 1)に移動します。- 移動の結果を表示します。