Estou executando o Kubernetes no CentOS 7, e não parece que a versão de perf
esteja ciente do namespace.
Se executar perf no PID no nó do host (nó do host encontrado com kubectl describe pods --namespace
), recebo um erro sobre os símbolos não encontrados. Isso parece ser porque ele procura o caminho do arquivo relativo ao contêiner, mas no sistema de arquivos do nó do host.
Se eu copiar o exe (um Go exe que inclui os símbolos) para o caminho esperado no nó do host (com kubectl cp ...
ou localizando o arquivo sob sobreposição2 em /var/lib/docker
), então perf top -p <pid>
funcionará o host host node, pois ele pode encontrar os mesmos símbolos que correspondem ao exe no container.
Existe uma maneira melhor / mais limpa de executar perf
em um processo em execução em um contêiner com um host do CentOS 7?
Referências:
Tags docker linux kubernetes centos7 perf