4.5. 使用 Tuna 的示例
例 4.1. 为特定 CPU 分配任务
以下示例使用有四个或更多处理器的系统,并演示了如何使所有
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,十六进制掩码为0x3
,或者在二进制中以11
表示。 - 将 CPU 列表重置为 2 和 3。
- 选择以
http
开头的所有线程。 - 将所选线程移到所选 CPU。tuna 将以
http
开始的线程的关联掩码设置为适当的 CPU。CPU 数字化为 2 和 3,十六进制掩码为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 列表重置为 CPU 1。
- 将
gnome-sc
线程移到所选 CPU (CPU 1)。 - 显示移动的结果。
- 将 CPU 0 添加到 CPU 列表中。
- 将
gnome-sc
线程移到所选 CPU (CPU 0 和 1)。 - 显示移动的结果。