Este conteúdo não está disponível no idioma selecionado.

Chapter 24. Reviewing a system by using the tuna interface


The tuna tool reduces complexity of performing tuning tasks. You can use tuna to adjust scheduler tunables parameters, tune thread priority, IRQ handlers, and isolate CPU cores and sockets. By using tuna, you can perform the following operations:

  • List the CPUs on a system.
  • List the interrupt requests (IRQs), currently running on a system.
  • Change policy and priority information about threads.
  • Display the current policies and priorities of a system.

24.1. Installing the tuna tool

The tuna tool is designed to be used on a running system. The application-specific measurement tools can start analyzing system performance immediately after making the changes.

Procedure

  • Install the tuna tool:

    # dnf install tuna
    Copy to Clipboard Toggle word wrap

Verification

  • Display the available tuna CLI options:

    # tuna -h
    Copy to Clipboard Toggle word wrap

    For more information, see the tuna(8) man page on your system.

24.2. Viewing the system status by using the tuna tool

You can use the tuna command-line interface (CLI) tool to view the system status.

Prerequisites

Procedure

  1. View the current policies and priorities:

    # tuna show_threads
    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
    Copy to Clipboard Toggle word wrap
  2. Alternatively, view a specific thread corresponding to a PID or matching a command name:

    # tuna show_threads -t pid_or_cmd_list
    Copy to Clipboard Toggle word wrap

    The pid_or_cmd_list argument is a list of comma-separated PIDs or command-name patterns.

  3. Depending on the scenario, perform one of the following actions:

  4. Save the changed configuration:

    # tuna save filename
    Copy to Clipboard Toggle word wrap

    This command saves only currently running kernel threads. Processes that are not running are not saved.

24.3. Tuning CPUs by using the tuna tool

tuna commands can manage individual CPUs. By using the tuna tool, you can perform the following actions:

Isolate CPUs
All tasks running on the specified CPU move to the next available CPU. Isolating a CPU makes this CPU unavailable by removing it from the affinity mask of all threads.
Include CPUs
Allows tasks to run on the specified CPU.
Restore CPUs
Restores the specified CPU to its previous configuration.

Prerequisites

Procedure

  1. List all currently running processes:

    # ps ax | awk 'BEGIN { ORS="," }{ print $1 }'
    PID,1,2,3,4,5,6,8,10,11,12,13,14,15,16,17,19
    Copy to Clipboard Toggle word wrap
  2. Display the thread list in the tuna interface:

    # tuna show_threads -t 'thread_list from above cmd'
    Copy to Clipboard Toggle word wrap
  3. Depending on your scenario, use this command to manage CPU affinity of processes with one of the following actions:

    # tuna [command] --cpus cpu_list
    Copy to Clipboard Toggle word wrap
    • The cpu_list argument is a list of comma-separated CPU numbers, for example, --cpus 0,2.
    • To add a specific CPU to the current cpu_list, use, for example, --cpus +0.
  4. Depending on your scenario, perform one of the following actions:

    1. To isolate a CPU, enter:

      # tuna isolate --cpus cpu_list
      Copy to Clipboard Toggle word wrap
    2. To include a CPU, enter:

      # tuna include --cpus cpu_list
      Copy to Clipboard Toggle word wrap
  5. To use a system with four or more processors, make all ssh threads run on CPU 0 and 1 and all http threads on CPU 2 and 3:

    # tuna move --cpus 0,1 -t ssh*
    Copy to Clipboard Toggle word wrap
    # tuna move --cpus 2,3 -t http\*
    Copy to Clipboard Toggle word wrap

Verification

  • Verify the applied changes by displaying the current configuration:

    # tuna show_threads -t ssh*
    
    pid   SCHED_  rtpri  affinity   voluntary   nonvoluntary   cmd
    855   OTHER   0      0,1        23           15            sshd
    Copy to Clipboard Toggle word wrap
    # tuna show_threads -t http\*
    pid   SCHED_  rtpri  affinity   voluntary   nonvoluntary   cmd
    855   OTHER   0       2,3        23           15           http
    Copy to Clipboard Toggle word wrap

    For more information, see the /proc/cpuinfo file and the tuna(8) man page on your system.

24.4. Tuning IRQs by using the tuna tool

The /proc/interrupts file records the number of interrupts per IRQ, the type of interrupt, and the name of the device that is located at that IRQ.

Prerequisites

Procedure

  1. View the current IRQs and their affinity:

    # tuna show_irqs
    # users            affinity
    0 timer                   0
    1 i8042                   0
    7 parport0                0
    Copy to Clipboard Toggle word wrap
  2. Specify the list of IRQs to be affected by a command:

    # tuna <command> --irqs irq_list --cpus cpu_list
    Copy to Clipboard Toggle word wrap
    • The irq_list argument is a list of comma-separated IRQ numbers or user-name patterns.
    • Replace <command> with, for example, --spread.
  3. Move an interrupt to a specified CPU:

    # tuna show_irqs --irqs <128>
    users            affinity
    128 iwlwifi           0,1,2,3
    
    # tuna move --irqs 128 --cpus 3
    Copy to Clipboard Toggle word wrap
    • Replace 128 with the irq_list argument and 3 with the cpu_list argument.
    • The cpu_list argument is a list of comma-separated CPU numbers, for example, --cpus 0,2. For more information, see Tuning CPUs by using the tuna tool.

Verification

  1. Compare the state of the selected IRQs before and after moving any interrupt to a specified CPU:

    # tuna show_irqs --irqs 128
         users            affinity
     128 iwlwifi                 3
    Copy to Clipboard Toggle word wrap

    For more information, see the /proc/interrupts file and the tuna(8) man page on your system.

Voltar ao topo
Red Hat logoGithubredditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

Theme

© 2025 Red Hat