Foi publicado o release do sistema de rastreamento dinâmico SystemTap 5.0, que fornece para a plataforma Linux ferramentas de depuração semelhantes à tecnologia DTrace. O SystemTap permite um monitoramento detalhado do sistema Linux em execução, coleta de estatísticas sobre o desempenho de aplicativos, perfilamento e controle de chamadas de sistema. O gerenciamento é realizado por meio de uma interface de linha de comando e uma linguagem de script semelhante ao C. O sistema é compatível com núcleos Linux a partir da versão 3.10 até 6.6-rc0.
No desenvolvimento do projeto participam empresas como Red Hat, IBM, Intel, Hitachi e Oracle. O catálogo de exemplos inclui mais de 190 scripts para diversas situações, adequados para monitorar a alocação de memória, entrada/saída, operações de disco, tráfego de rede (por exemplo, análise de desempenho do NFS), funcionamento do agendador de tarefas, tratamento de interrupções, uso de buffers do sistema, configuração de bloqueios, execução de chamadas de sistema, tratamento de sinais, etc.
Principais mudanças:
- O suporte para a ramificação do núcleo 2.6.32, utilizada no RHEL6, foi encerrado. O teste do SystemTap agora é feito com núcleos 3.10 (RHEL7), 4.18 (RHEL8 + CentOS Stream 8), 5.14.0 (RHEL9 + CentOS Stream 9), 6.4 (Fedora 38), 6.5 (Fedora 39) e 6.6-rc (Fedora rawhide).
- Foi adicionada a compatibilidade com o processo debuginfod para a obtenção dinâmica de informações de depuração e metadados sobre arquivos executáveis instalados.
- Foi adicionada a compatibilidade com dados de depuração no formato DWARF5, que podem ser usados na função print_ubacktrace_fileline().
- No frontend (utilitário stap) com a presença de servidores debuginfod foi implementada a possibilidade de usar máscaras ao definir processos alvo, por exemplo, stap -e ‘probe debuginfod.process(«/usr/*/curl»).begin { log(«hi»)}. A informação sobre processos na lista exibida ao usar a opção ‘-L’ em conjunto com várias ‘-v’ foi aprimorada.
- No backend, melhorou-se o desempenho do registro uprobe e acelerou-se a inicialização do módulo do núcleo. Foi proposta um sistema de mensagens entre o núcleo e o espaço do usuário mais rápido e confiável.
- Foram adicionados macros que são processados em tempo de execução: STP_TIMING_NSECS para obter informações sobre o tempo de verificação em nanossegundos e STP_FORCE_STDOUT_TTY para redefinir STP_STDOUT_NOT_ATTY.
Fonte: opennet.ru
