Eventos desconhecidos no nodejs / v8 flamegraph usando perf_events
Eu tento fazer alguns perfis de nodejs usando o Linux perf_events, conforme descrito por Brendan Greggaqui.
O fluxo de trabalho é o seguinte:
execute o nó> 0.11.13 com--perf-basic-prof
, o que cria/tmp/perf-(PID).map
arquivo onde o mapeamento de símbolo JavaScript é gravado.Capturar pilhas usandoperf record -F 99 -p `pgrep -n node` -g -- sleep 30
Dobre as pilhas usandostackcollapse-perf.pl
script deesta repositórioGere svg flame graph usandoflamegraph.pl
roteiroRecebo o seguinte resultado (que parece muito bom no começo):
O problema é que existem muitas[unknown]
elementos, que suponho que devam ser minhas chamadas de função nodejs. Suponho que todo o processo falhe em algum lugar no ponto 3, onde os dados perf devem ser dobrados usando mapeamentos gerados pelo nó / v8 executado com--perf-basic-prof
. /tmp/perf-PID.map
O arquivo é criado e algum mapeamento é gravado nele durante a execução do nó.
Como resolver este problema?
Estou usando o CentOS 6.5 x64 e já tentei isso com o nó 0.11.13, 0.11.14 (ambos pré-compilados e compilados também) sem êxito.