AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1163391
Accepted
Xiaoyong Guo
Xiaoyong Guo
Asked: 2024-08-02 12:21:03 +0800 CST2024-08-02 12:21:03 +0800 CST 2024-08-02 12:21:03 +0800 CST

O perf/strace/ltrace tem impacto no desempenho do processo tracee?

  • 772

Eu usei strace para observar o processo de serviço em execução algumas vezes e parece que não há muito impacto no processo tracee. Mas hoje quando usei o ltrace para fazer algum rastreamento, ele travou o processo de tracee, felizmente está em um ambiente de desenvolvimento. O dmesg mostra o seguinte erro:

[Fri Aug  2 11:02:43 2024] traps: writer1[4137194] trap int3 ip:4092c1 sp:7f1eda53db58 error:0 in service_prog[400000+1ea000]

Então eu tenho estas perguntas:

  1. O desempenho tem perf/strace/ltraceimpacto no processo de rastreamento?
  2. É seguro usar perf/strace/ltrace em um ambiente de produção?
  3. Por que o ltrace travou o processo tracee? Como interpretar a mensagem dmesg acima? o que é armadilha int3?

Obrigado.

linux
  • 1 1 respostas
  • 24 Views

1 respostas

  • Voted
  1. Best Answer
    John Mahowald
    2024-08-04T09:21:00+08:002024-08-04T09:21:00+08:00

    Sim, todas as ferramentas de criação de perfil de desempenho adicionam sobrecarga. No entanto, a desaceleração e a maturidade das ferramentas variam enormemente. Aprenda as ferramentas em um host de teste. Talvez use-os na produção.

    strace pode ter uma sobrecarga incrivelmente alta. Vale a pena repetir o argumento de Gregg sobre isso:

    AVISO: pode causar sobrecarga de desempenho significativa e, às vezes, massiva, e na pior das hipóteses, reduzindo a velocidade do aplicativo de destino em mais de 100x. Isto pode não apenas torná-lo inadequado para uso em produção, mas qualquer informação de tempo também pode ser tão distorcida que pode ser enganosa.

    Essencialmente, ele atinge um ponto de interrupção do depurador a cada chamada do sistema. Na pior das hipóteses, quando um aplicativo tem muito syscall, ele pode ser executado centenas de vezes mais lento. Pelo que me lembro, ltrace também é baseado em ptrace() e tem sobrecarga semelhante.

    Tanto strace quanto ltrace são ferramentas simples e maduras, os programas provavelmente estão disponíveis e você não precisará escrever código. No entanto, eu não começaria com nenhum dos dois ao investigar um problema de desempenho, especialmente na produção.

    As ferramentas de desempenho são muito específicas da plataforma. No Linux, minha progressão do monitoramento para a criação de perfil é mais ou menos assim, dependendo de quais ferramentas estão disponíveis:

    • Métricas amplas em nível de host usando uma ferramenta como netdata, elas podem permanecer em execução
    • Resumo de todo o sistema na CPU usando perf top
    • Melhor visualização na CPU (programas específicos ou em todo o sistema) usando flamegraph de script de desempenho
    • Scripts BPF existentes, como BCC-Tools
    • perf trace --syscalls uma alternativa ao strace
    • ltrace ou strace

    Observe que muitos deles estão usando perf_events, uma interface Linux mais recente para criar perfis de dados que é muito mais eficiente no limite do kernel do usuário.

    Não sei exatamente o que essa mensagem de log significa. Se estiver relacionado ao sinal, falando em ferramentas bcc, considere usar o programa killsnoop para ver qual processo enviou o sinal.

    • 1

relate perguntas

  • Como descobrir detalhes sobre hardware na máquina Linux?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve