第 4 章 tuna
您可以使用 Tuna 工具调整调度程序可调项,调整线程优先级、RRQ 处理程序,以及隔离 CPU 内核和套接字。Tuna 旨在降低执行调优任务的复杂性。
安装 tuna 软件包后,使用 tuna 命令启动 Tuna 图形用户界面(GUI)。使用 tuna -h 命令显示可用的命令行界面(CLI)选项。请注意,tuna(8) 手册页区分操作和修饰符选项。
Tuna GUI 和 CLI 提供了等效的功能。GUI 在一个屏幕中显示 CPU 拓扑,以帮助您识别问题。Tuna GUI 还允许您更改正在运行的线程,并立即查看这些更改的结果。在 CLI 中,Tuna 接受多个命令行参数,并按顺序处理它们。您可以在应用程序初始化脚本中使用此类命令作为配置命令。
重要
使用 tuna --save=filename 命令和描述性文件名来保存当前配置。请注意,这个命令不会保存 Tuna 可以更改的每个选项,而是只保存内核线程更改。任何在更改时当前未运行的进程都不会保存。
4.1. 使用 Tuna 查看系统
在进行任何更改之前,您可以使用 Tuna 显示系统上当前发生的情况。
要查看当前的策略和优先级,请使用 tuna --show_threads 命令:
#
tuna --show_threads
thread
pid SCHED_ rtpri affinity cmd
1 OTHER 0 0,1 init
2 FIFO 99 0 migration/0
3 OTHER 0 0 ksoftirqd/0
4 FIFO 99 0 watchdog/0
要只显示与 PID 对应的特定线程或与命令名称匹配,请在
--show_threads
前面添加 --threads
选项:
#
tuna --threads=pid_or_cmd_list --show_threads
Thepid_or_cmd_list 参数是一个逗号分隔的 PID 或命令行模式的列表。
要查看当前的中断请求(IRQ)及其关联性,请使用 tuna --show_irqs 命令:
#
tuna --show_irqs
# users affinity 0 timer 0 1 i8042 0 7 parport0 0
要只显示与 IRQ 编号或与 IRQ 用户名对应的特定中断请求,请在
--show_irqs
前面添加 --irqs
选项:
#
tuna --irqs=number_or_user_list --show_irqs
number_or_user_list 参数是一个以逗号分隔的 IRQ 编号或用户名模式的列表。