systemtap профилирование gc node.js

Я установил node.js(0.9.4) через nvm, который, согласно журналу изменений, поддерживает systemtap.

Я установил systemtap на свой дистрибутив Fedora Linux.

$ sudo yum install systemtap

Я использовал этот суть от Бена Нордхуиса.

$ stap -l 'process("node")'

ничего не производит.

$ sudo stap gc.stp -c 'node test.js'
semantic error: while resolving probe point: identifier 'process' at gc.stp:7:7
        source: probe process("node").mark("gc__start")
                      ^

semantic error: no match
semantic error: while resolving probe point: identifier 'process' at :12:7
        source: probe process("node").mark("gc__done")

У меня совсем нет опыта работы с systemtap, но хотелось бы поиграть с ним? Что с ним возможно? Могу ли я увидеть, сколько памяти потребляет код (http://stackoverflow.com/questions/13126808/whats-the-node-js-memory-breakdown)?


Обновите, чтобы ответить на комментарий.

$ readelf -n node

readelf: Error: 'node': No such file

$ which node
~/nvm/v0.9.4/bin/node

$ readelf -n ~/nvm/v0.9.4/bin/node

Notes at offset 0x0000021c with length 0x00000020:
  Owner                 Data size   Description
  GNU                  0x00000010   NT_GNU_ABI_TAG (ABI version tag)
    OS: Linux, ABI: 2.6.32

Notes at offset 0x0000023c with length 0x00000024:
  Owner                 Data size   Description
  GNU                  0x00000014   NT_GNU_BUILD_ID (unique build ID bitstring)
    Build ID: 294da933883eaeaf7e848073dc3db6bff6762fb4

$ uname -a
[alfred@alfred81-AMILO-Pi-2515 gc-stap]$ uname -a
Linux alfred81-AMILO-Pi-2515.lan 3.6.3-1.fc17.x86_64 #1 SMP Mon Oct 22 15:32:35 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

$ stap -V
Systemtap translator/driver (version 2.0/0.154, rpm 2.0-1.fc17)
Copyright (C) 2005-2012 Red Hat, Inc. and others
This is free software; see the source for copying conditions.
enabled features: AVAHI LIBRPM LIBSQLITE3 NSS TR1_UNORDERED_MAP NLS

person Alfred    schedule 25.12.2012    source источник
comment
Попробуйте stap -l 'process("node").mark("*") для первого запроса или readelf -n node. Возможно, что nvm-копия node.js была скомпилирована без зондов sys/sdt.h.   -  person fche    schedule 26.12.2012
comment
Кроме того, можете ли вы определить версии ядра и системы?   -  person fche    schedule 26.12.2012
comment
Спасибо за вашу помощь. Смотрите ответ для получения обновленной информации!   -  person Alfred    schedule 26.12.2012


Ответы (1)


Похоже, ваша копия узла скомпилирована без маркеров sys/sdt.h. Если бы они были скомпилированы, readelf -n показало бы что-то вроде...

  stapsdt              0x00000040   NT_STAPSDT (SystemTap probe descriptors)
    Provider: stap
    Name: stap_system__spawn
    Location: 0x000000000012e1b0, Base: 0x00000000001cb886, Semaphore: 0x0000000000000000
    Arguments: -4@%ebx -4@%eax

Возможно, он был настроен с параметром --without-dtrace.

person fche    schedule 26.12.2012