Skip to content

Instantly share code, notes, and snippets.

@brendangregg
Created June 24, 2016 20:52
Show Gist options
  • Save brendangregg/2fe6f6b06c3346710a25b65eb9cb4c28 to your computer and use it in GitHub Desktop.
Save brendangregg/2fe6f6b06c3346710a25b65eb9cb4c28 to your computer and use it in GitHub Desktop.
Linux perf USDT Node.js
# perf script | c++filt | more
node 36945 [004] 5233.662132: sdt_node:http__server__request: (da8b0c)
9a8b0c node::DTRACE_HTTP_SERVER_REQUEST(v8::FunctionCallbackInfo<v8::Value> const&)+0xffffffffffc0050c (/mnt/node-v4.4.1/out/Release/node)
452992 v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&))+0xffffffffffc00092 (/mnt/node-v4.4.1/out/Releas
e/node)
47c981 v8::internal::MaybeHandle<v8::internal::Object> v8::internal::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::(anonymous namespace
)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>&)+0xffffffffffc001e1 (/mnt/node-v4.4.1/out/Release/node)
47cdde v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)+0xffffffffffc0003e (/mnt/node-v4.4.1/out/Release/node)
3da7b98068fb Stub:CEntryStub+0x5b (/tmp/perf-36945.map)
3da7b999a619 LazyCompile:~parserOnIncoming _http_server.js:454+0x2f9 (/tmp/perf-36945.map)
3da7b99e482e LazyCompile:*parserOnHeadersComplete _http_common.js:43+0x7ce (/tmp/perf-36945.map)
3da7b982e63d Builtin:JSEntryTrampoline+0x9d (/tmp/perf-36945.map)
3da7b981ff42 Stub:JSEntryStub+0xc2 (/tmp/perf-36945.map)
5b41cf v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int,
v8::internal::Handle<v8::internal::Object>*, bool)+0xffffffffffc0014f (/mnt/node-v4.4.1/out/Release/node)
4354df v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*)+0xffffffffffc000ff (/mnt/node-v4.4.1/out/Release/node)
440c21 v8::Function::Call(v8::Local<v8::Value>, int, v8::Local<v8::Value>*)+0xffffffffffc00041 (/mnt/node-v4.4.1/out/Release/node)
96b1be node::Parser::on_headers_complete(http_parser*)+0xffffffffffc0030e (/mnt/node-v4.4.1/out/Release/node)
9c34f7 http_parser_execute+0xffffffffffc00717 (/mnt/node-v4.4.1/out/Release/node)
96a5f2 node::Parser::OnReadImpl(long, uv_buf_t const*, uv_handle_type, void*)+0xffffffffffc000b2 (/mnt/node-v4.4.1/out/Release/node)
9814b3 node::StreamWrap::OnRead(uv_stream_s*, long, uv_buf_t const*)+0xffffffffffc00073 (/mnt/node-v4.4.1/out/Release/node)
9d3d07 uv__read+0xffffffffffc00227 (/mnt/node-v4.4.1/out/Release/node)
9d4390 uv__stream_io+0xffffffffffc00290 (/mnt/node-v4.4.1/out/Release/node)
9d9e6d uv__io_poll+0xffffffffffc003ad (/mnt/node-v4.4.1/out/Release/node)
9ca556 uv_run+0xffffffffffc00156 (/mnt/node-v4.4.1/out/Release/node)
94de78 node::Start(int, char**)+0xffffffffffc00438 (/mnt/node-v4.4.1/out/Release/node)
21f45 __libc_start_main+0xffff017e6e52a0f5 (/lib/x86_64-linux-gnu/libc-2.19.so)
node 36945 [004] 5233.662481: sdt_node:http__server__request: (da8b0c)
9a8b0c node::DTRACE_HTTP_SERVER_REQUEST(v8::FunctionCallbackInfo<v8::Value> const&)+0xffffffffffc0050c (/mnt/node-v4.4.1/out/Release/node)
452992 v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&))+0xffffffffffc00092 (/mnt/node-v4.4.1/out/Releas
e/node)
47c981 v8::internal::MaybeHandle<v8::internal::Object> v8::internal::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::(anonymous namespace
)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>&)+0xffffffffffc001e1 (/mnt/node-v4.4.1/out/Release/node)
47cdde v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)+0xffffffffffc0003e (/mnt/node-v4.4.1/out/Release/node)
3da7b98068fb Stub:CEntryStub+0x5b (/tmp/perf-36945.map)
3da7b999a619 LazyCompile:~parserOnIncoming _http_server.js:454+0x2f9 (/tmp/perf-36945.map)
3da7b99e482e LazyCompile:*parserOnHeadersComplete _http_common.js:43+0x7ce (/tmp/perf-36945.map)
3da7b982e63d Builtin:JSEntryTrampoline+0x9d (/tmp/perf-36945.map)
3da7b981ff42 Stub:JSEntryStub+0xc2 (/tmp/perf-36945.map)
5b41cf v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int,
v8::internal::Handle<v8::internal::Object>*, bool)+0xffffffffffc0014f (/mnt/node-v4.4.1/out/Release/node)
4354df v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*)+0xffffffffffc000ff (/mnt/node-v4.4.1/out/Release/node)
440c21 v8::Function::Call(v8::Local<v8::Value>, int, v8::Local<v8::Value>*)+0xffffffffffc00041 (/mnt/node-v4.4.1/out/Release/node)
96b1be node::Parser::on_headers_complete(http_parser*)+0xffffffffffc0030e (/mnt/node-v4.4.1/out/Release/node)
9c34f7 http_parser_execute+0xffffffffffc00717 (/mnt/node-v4.4.1/out/Release/node)
96a5f2 node::Parser::OnReadImpl(long, uv_buf_t const*, uv_handle_type, void*)+0xffffffffffc000b2 (/mnt/node-v4.4.1/out/Release/node)
9814b3 node::StreamWrap::OnRead(uv_stream_s*, long, uv_buf_t const*)+0xffffffffffc00073 (/mnt/node-v4.4.1/out/Release/node)
9d3d07 uv__read+0xffffffffffc00227 (/mnt/node-v4.4.1/out/Release/node)
9d4390 uv__stream_io+0xffffffffffc00290 (/mnt/node-v4.4.1/out/Release/node)
9d9e6d uv__io_poll+0xffffffffffc003ad (/mnt/node-v4.4.1/out/Release/node)
9ca556 uv_run+0xffffffffffc00156 (/mnt/node-v4.4.1/out/Release/node)
94de78 node::Start(int, char**)+0xffffffffffc00438 (/mnt/node-v4.4.1/out/Release/node)
21f45 __libc_start_main+0xffff017e6e52a0f5 (/lib/x86_64-linux-gnu/libc-2.19.so)
[...]
# perf list | grep sdt
sdt_node:http__client__request [Tracepoint event]
sdt_node:http__server__request [Tracepoint event]
sdt_node:gc__done [SDT event]
sdt_node:gc__start [SDT event]
sdt_node:http__client__request [SDT event]
sdt_node:http__client__response [SDT event]
sdt_node:http__server__request [SDT event]
sdt_node:http__server__response [SDT event]
sdt_node:net__server__connection [SDT event]
sdt_node:net__stream__end [SDT event]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment