Variáveis
CAPÍTULO 4. REVISÃO DE UM SISTEMA USANDO INTERFACE DE ATUM
Use a ferramenta tuna para ajustar as sintonizações do programador, ajustar a prioridade da rosca, os manipuladores IRQ e isolar os núcleos e soquetes da CPU. O atum reduz a complexidade de executar tarefas de sintonização.
4.1. INSTALANDO A FERRAMENTA ATUM
A ferramenta tuna foi projetada para ser usada em um sistema em funcionamento. Isto permite que ferramentas de medição específicas da aplicação vejam e analisem o desempenho do sistema imediatamente após as mudanças terem sido feitas.
A ferramenta tuna realiza as seguintes operações: Lista as CPUs em um sistema
Lista os pedidos de interrupção (IRQs) atualmente em funcionamento em um sistema Altera a política e as informações prioritárias sobre os tópicos
Exibe as políticas e prioridades atuais de um sistema Procedimento
1. Para instalar a ferramenta tuna: # yum instalar atum
2. Para exibir as opções disponíveis do tuna CLI: # atum -h
Recursos adicionais
A página do homem tuna.
4.2. VISUALIZAÇÃO DO STATUS DO SISTEMA USANDO A
FERRAMENTA ATUM
Este procedimento descreve como visualizar o status do sistema usando a ferramenta de interface de linha de comando (CLI) tuna.
Pré-requisitos
A ferramenta atum está instalada. Para maiores informações, veja Seção 4.1, “Instalando a ferramenta atum”.
Procedimento
Para ver as políticas e prioridades atuais:
# 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
Para visualizar uma linha específica correspondente a um PID ou que corresponda a um nome de comando:
# Atum --threads=pid_or_cmd_list --show_threads
O argumento pid_or_cmd_list é uma lista de PIDs separados por vírgula ou padrões de nomes de comando.
Para sintonizar as CPUs usando a tuna CLI, ver Seção 4.3, “Sintonia de CPUs usando a ferramenta atum”.
Para sintonizar os IRQs usando a ferramenta tuna, ver Seção 4.4, “Ajuste de IRQs usando ferramenta de atum”.
Para salvar a configuração alterada: # Atum --guardar= nome do arquivo
Este comando salva atualmente apenas os fios do kernel em execução. Os processos que não estão em execução não são salvos.
Recursos adicionais
A página do homem tuna.
O comando tuna -h exibe as opções CLI disponíveis.
4.3. SINTONIA DE CPUS USANDO A FERRAMENTA ATUM
Os comandos da ferramenta tuna podem ter como alvo CPUs individuais. Usando a ferramenta atum, você pode:
Isolate CPUs
Todas as tarefas executadas na CPU especificada passam para a próxima CPU disponível. O isolamento de uma CPU a torna indisponível, removendo-a da máscara de afinidade de todas as roscas.
Include CPUs
Permite que as tarefas sejam executadas na CPU especificada Restore CPUs
Restaura a CPU especificada para sua configuração anterior.
Este procedimento descreve como sintonizar as CPUs usando o tuna CLI. Pré-requisitos
A ferramenta atum está instalada. Para maiores informações, veja Seção 4.1, “Instalando a ferramenta atum”.
Procedimento
Para especificar a lista de CPUs a serem afetadas por um comando: # atum --cpus=cpu_list [command]
O argumento cpu_list é uma lista de números de CPU separados por vírgula. Por exemplo, -- cpus=0,2. As listas de CPU também podem ser especificadas em uma série, por exemplo -- cpus=”1-3”que selecionaria as CPUs 1, 2, e 3.
Para adicionar uma CPU específica ao atual cpu_list, por exemplo, use --cpus= 0. Substituir [command] por, por exemplo, --isolate.
Para isolar uma CPU:
# tuna --cpus=cpu_list --isolate Para incluir uma CPU:
# atum --cpus=cpu_list --inclua
Para usar um sistema com quatro ou mais processadores, mostrar como fazer todos os threads ssh rodarem na CPU 0 e 1, e todos os threads http na CPU 2 e 3:
Este comando executa as seguintes operações sequencialmente: 1. Seleciona as CPUs 0 e 1.
2. Seleciona todos os tópicos que começam com ssh.
3. Movimenta os fios selecionados para as CPUs selecionadas. Atum define a máscara de afinidade dos fios, começando com ssh para as CPUs apropriadas. As CPUs podem ser expressas numericamente como 0 e 1, em máscara hexagonal como 0x3, ou em binário como 11.
4. Redefine a lista de CPU para 2 e 3.
5. Seleciona todos os tópicos que começam com http.
6. Movimenta os fios selecionados para as CPUs especificadas. Tuna define a máscara de afinidade dos fios começando com http para as CPUs especificadas. As CPUs podem ser expressas numericamente como 2 e 3, em máscara hexadecimal como 0xC, ou em binário como 1100.
Etapas de verificação
Para exibir a configuração atual e verificar se as mudanças foram realizadas como esperado: # tuna --cpus=0,1 --threads=ssh\* \
--move --cpus=2,3 --threads=http\* --move
Este comando executa as seguintes operações sequencialmente: 1. Seleciona todas as roscas que começam com as roscas gnome-sc.
2. Exibe os fios selecionados para permitir que o usuário verifique sua máscara de afinidade e prioridade RT.
3. Seleciona CPU 0.
4. Movimenta os fios gnome-sc para a CPU especificada, CPU 0. 5. Mostra o resultado da mudança.
6. Redefine a lista de CPU para CPU 1.
7. Movimenta os fios gnome-sc para a CPU especificada, CPU 1. 8. Exibe o resultado da mudança.
9. Adiciona a CPU 0 à lista de CPU.
10. Move os tópicos gnome-sc para as CPUs especificadas, CPUs 0 e 1. 11. Exibe o resultado da mudança.
Recursos adicionais
O arquivo /proc/cpuinfo. A página do homem tuna.
O comando tuna -h exibe as opções CLI disponíveis.
4.4. AJUSTE DE IRQS USANDO FERRAMENTA DE ATUM
O arquivo /proc/interrupts registra o número de interrupções por IRQ, o tipo de interrupção, e o nome do dispositivo que está localizado nesse IRQ. Este procedimento descreve como afinar os IRQs usando a ferramenta tuna.
# 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
Pré-requisitos
A ferramenta atum está instalada. Para maiores informações, veja Seção 4.1, “Instalando a ferramenta atum”.
Procedimento
Para ver os IRQs atuais e sua afinidade: # tuna --show_irqs
# users affinity 0 timer 0 1 i8042 0 7 parport0 0
Para especificar a lista de IRQs a serem afetados por um comando: # atum --irqs=irq_list [command]
O argumento irq_list é uma lista de números IRQ separados por vírgula ou padrões de nomes de usuários.
Substituir [command] por, por exemplo, --isolate.
Para mover uma interrupção para uma CPU especificada: # tuna --irqs=128 --show_irqs
# users affinity 128 iwlwifi 0,1,2,3
# tuna --irqs=128 --cpus=3 --move
Substituir 128 pelo argumento irq_list e 3 pelo argumento cpu_list.
O argumento cpu_list é uma lista de números de CPU separados por vírgula, por exemplo, -- cpus=0,2. Para mais informações, ver Seção 4.3, “Sintonia de CPUs usando a ferramenta atum”. Etapas de verificação
Compare o estado dos IRQs selecionados antes e depois de mover qualquer interrupção para uma CPU especificada:
# tuna --irqs=128 --show_irqs # users affinity 128 iwlwifi 3 Recursos adicionais
O arquivo /procs/interrupts. A página do homem tuna.
O comando tuna -h exibe as opções CLI disponíveis.