Introdução
Neste laboratório, exploraremos como determinar se a poderosa ferramenta de rastreamento do kernel Linux, ftrace, está habilitada e acessível em seu sistema. Começaremos examinando o diretório /sys/kernel/debug/tracing, que serve como a interface primária para interagir com o ftrace.
Após a verificação inicial, utilizaremos a ferramenta trace-cmd para verificar ainda mais a funcionalidade do ftrace e listar as opções de rastreamento disponíveis. Finalmente, inspecionaremos os parâmetros de configuração relevantes dentro do sistema de arquivos /proc/sys/kernel para obter uma compreensão mais profunda da configuração do ftrace.
Verificar o status do ftrace com ls /sys/kernel/debug/tracing
Nesta etapa, começaremos a explorar o ftrace, uma poderosa ferramenta de rastreamento integrada ao kernel Linux. O ftrace permite que desenvolvedores e administradores de sistema compreendam o comportamento em tempo de execução do kernel.
A interface primária para interagir com o ftrace é através do sistema de arquivos de depuração (debug file system), especificamente localizado em /sys/kernel/debug/tracing.
Primeiro, vamos verificar se o sistema de arquivos de depuração está montado e se o diretório tracing existe. Podemos usar o comando ls para listar o conteúdo deste diretório.
Digite o seguinte comando em seu terminal e pressione Enter:
ls /sys/kernel/debug/tracing
Você deve ver uma lista de arquivos e diretórios relacionados ao ftrace. A saída exata pode variar dependendo da versão e configuração do kernel, mas deve ser semelhante a isto:
README events options
available_events free_buffer per_cpu
available_filter_functions function_graph_max_depth printk_formats
available_tracers function_graph_tracer set_event
buffer_size_kb function_profile_dynamic set_filter
buffer_total_size_kb function_trace set_ftrace_filter
current_tracer instances set_ftrace_notrace
dynamic_filter kprobe_events set_graph_function
enabled kprobe_profile set_graph_notrace
error_log max_graph_depth set_tracer
event_sources options snapshot
tracing_cpumask tracing_max_latency tracing_on
tracing_thresh trace trace_clock
trace_marker trace_options trace_pipe
trace_stat
Se você vir uma saída semelhante, isso significa que a interface ftrace está disponível em seu sistema. Se você receber um erro como "No such file or directory" (Nenhum arquivo ou diretório deste tipo), isso pode indicar que o sistema de arquivos de depuração não está montado ou que o ftrace não está habilitado no kernel. No entanto, no ambiente LabEx, ele deve estar disponível.
Este diretório contém vários arquivos que controlam o comportamento do ftrace e fornecem dados de rastreamento. Exploraremos alguns desses arquivos em etapas posteriores.
Por enquanto, simplesmente verificar a existência deste diretório e seu conteúdo confirma que você pode interagir com o ftrace.
Clique em Continuar para prosseguir para a próxima etapa.
Verificar ftrace com trace-cmd list
Na etapa anterior, confirmamos a presença da interface ftrace no sistema de arquivos de depuração. Agora, vamos usar uma ferramenta de linha de comando chamada trace-cmd para interagir com o ftrace. trace-cmd é um utilitário do espaço do usuário que simplifica o processo de configuração e coleta de dados do ftrace.
Uma das funções úteis do trace-cmd é listar os eventos e rastreadores de rastreamento disponíveis. Isso nos ajuda a entender o que podemos monitorar com o ftrace.
Vamos usar trace-cmd list para ver os rastreadores disponíveis. Rastreadores são diferentes modos de operação para o ftrace, permitindo que você rastreie diferentes aspectos do kernel.
Digite o seguinte comando em seu terminal e pressione Enter:
trace-cmd list -t
A opção -t informa ao trace-cmd para listar os rastreadores disponíveis. Você deve ver uma saída semelhante a esta:
List of available tracers:
blk
function
function_graph
irqsoff
nop
preemptirqsoff
wakeup
wakeup_rt
Esta saída mostra os diferentes rastreadores disponíveis neste sistema. Por exemplo, function rastreia chamadas de função, e function_graph rastreia chamadas de função e seu gráfico de chamadas.
Em seguida, vamos listar os eventos disponíveis que podem ser rastreados. Eventos são pontos específicos no kernel onde as informações de rastreamento podem ser coletadas.
Digite o seguinte comando e pressione Enter:
trace-cmd list -e
A opção -e informa ao trace-cmd para listar os eventos disponíveis. Este comando produzirá uma longa lista de eventos, categorizados por subsistemas (por exemplo, sched, syscalls, ext4). A saída será semelhante a esta (apenas uma pequena parte é mostrada):
List of available events:
ftrace:
ftrace_buffer_overrun
ftrace_inject_event
ftrace_print_event
kmem:
kmem_cache_alloc
kmem_cache_alloc_node
kmem_cache_free
kmem_cache_free_page
kmem_cache_free_pages
kmem_cache_grow
kmem_cache_shrink
mm_page_alloc
mm_page_alloc_zone_locked
mm_page_free
mm_page_free_batched
mm_page_pcpu_drain
... (many more events)
Você pode rolar pela saída para ver o vasto número de eventos disponíveis para rastreamento. Isso demonstra a visibilidade detalhada que o ftrace fornece sobre as operações do kernel.
Usar trace-cmd list é uma boa maneira de obter uma visão geral do que o ftrace pode monitorar em seu sistema específico.
Clique em Continuar para prosseguir.
Inspecionar a configuração do ftrace em /proc/sys/kernel
Além da interface do sistema de arquivos de depuração em /sys/kernel/debug/tracing, algumas configurações relacionadas ao ftrace também podem ser encontradas no diretório /proc/sys/kernel. O sistema de arquivos /proc é um sistema de arquivos virtual que fornece informações sobre processos e outras informações do sistema. O diretório /proc/sys contém arquivos que permitem visualizar e modificar os parâmetros do kernel em tempo de execução.
Vamos inspecionar alguns arquivos em /proc/sys/kernel que estão relacionados ao ftrace. Podemos usar o comando cat para visualizar o conteúdo desses arquivos.
Primeiro, vamos verificar o arquivo ftrace_enabled. Este arquivo indica se o ftrace está atualmente habilitado no kernel.
Digite o seguinte comando em seu terminal e pressione Enter:
cat /proc/sys/kernel/ftrace_enabled
Você deve ver uma saída como esta:
1
Um valor de 1 significa que o ftrace está habilitado, e 0 significa que está desabilitado.
Em seguida, vamos olhar para o arquivo ftrace_dump_on_oops. Este arquivo controla se o buffer do ftrace é despejado no console quando ocorre um kernel oops (um erro do kernel).
Digite o seguinte comando e pressione Enter:
cat /proc/sys/kernel/ftrace_dump_on_oops
A saída provavelmente será:
1
Um valor de 1 significa que o buffer do ftrace será despejado em um kernel oops, o que pode ser útil para depuração.
Finalmente, vamos verificar o arquivo ftrace_filter_notrace_regex. Este arquivo contém uma expressão regular que pode ser usada para filtrar quais funções não são rastreadas ao usar o rastreamento de função.
Digite o seguinte comando e pressione Enter:
cat /proc/sys/kernel/ftrace_filter_notrace_regex
A saída pode estar vazia ou conter uma expressão regular, dependendo da configuração do sistema:
Esses arquivos em /proc/sys/kernel fornecem um vislumbre de algumas configurações globais do ftrace. Embora a configuração mais detalhada e o acesso aos dados ocorram através de /sys/kernel/debug/tracing, esses arquivos oferecem uma maneira rápida de verificar o status geral e alguns comportamentos básicos do ftrace.
Você agora explorou as principais interfaces para interagir com o ftrace: o sistema de arquivos de depuração e o diretório /proc/sys/kernel.
Clique em Continuar para concluir este laboratório.
Resumo
Neste laboratório, aprendemos como verificar se o utilitário ftrace do kernel está habilitado e acessível em um sistema Linux. Começamos explorando a interface principal do ftrace localizada dentro do sistema de arquivos de depuração em /sys/kernel/debug/tracing. Ao listar o conteúdo deste diretório usando o comando ls, verificamos a presença de arquivos e diretórios relacionados ao ftrace, indicando que a interface do ftrace está disponível.
Esta etapa inicial confirmou o requisito fundamental para usar o ftrace: o sistema de arquivos de depuração deve estar montado e o diretório de rastreamento deve existir. Ver os vários arquivos de configuração e controle do ftrace na saída de ls /sys/kernel/debug/tracing forneceu uma confirmação visual de que a infraestrutura do ftrace está presente e pronta para interação adicional.



