Skip to content

Instantly share code, notes, and snippets.

@gamlerhart
Last active July 25, 2016 12:16
Show Gist options
  • Save gamlerhart/674e33d7e8db51040fc00869de0e272a to your computer and use it in GitHub Desktop.
Save gamlerhart/674e33d7e8db51040fc00869de0e272a to your computer and use it in GitHub Desktop.
triton-debug
#linux-syscalls aka lx-syscalls
root@3bd53e4a7fe4:/# dtrace -ln 'lx-syscall:::'
ID PROVIDER MODULE FUNCTION NAME
1549 lx-syscall sys32 inotify_init1 return
1550 lx-syscall sys32 preadv entry
1551 lx-syscall sys32 preadv return
1552 lx-syscall sys32 pwritev entry
# Start tracing the syscalls. Grouped by execname, pid and syscallname (probefunc)
root@3bd53e4a7fe4:/# dtrace -n 'syscall::: { @num[execname,pid,probefunc] = count() }'
dtrace: description 'lx-syscall::: ' matched 1352 probes
^C
node 23210 fsync 11368
node 23210 ioctl 11368
node 23210 open 11368
node 23210 pwrite64 11368
node 23210 close 11370
node 23210 unlink 11370
node 23210 epoll_wait 30332
node 23210 read 30332
node 23210 write 30332
node 23210 futex 180019
#Switch to Triton
eval $(triton env)
# Start nginx on triton
docker run -d --name test -p 80 nginx
roman@minty ~ $ docker exec -ti test /bin/bash
root@ae35cee7759b:/# ls -l
roman@minty ~ $ docker exec -ti waste-io-example /bin/bash
root@3bd53e4a7fe4:/#
root@3bd53e4a7fe4:/# iostat -M 1
bash: iostat: command not found
#Oh...damn...iostat would tell us if our IO is sane.
#Ah.../native to the rescue
root@3bd53e4a7fe4:/# iostat -M 1
tty ramdisk1 sd0 sd1 sd2 cpu
tin tout Mps tps serv Mps tps serv Mps tps serv Mps tps serv us sy dt id
0 236 0 0 0 0 0 0 2 148 0 2 42 1 4 8 0 89
0 1214 0 0 0 0 0 0 7 3583 0 0 0 0 9 14 0 77
0 2100 0 0 0 0 0 0 7 3531 0 5 157 0 7 17 0 77
0 941 0 0 0 0 0 0 7 3640 0 0 0 0 7 14 0 79
root@3bd53e4a7fe4:/# dtrace -n 'lx-syscall::open:entry/execname=="node"/ { @num[jstack()] = count() }'
dtrace: description 'lx-syscall::open:entry' matched 2 probes
^C
libc.so.6`open+0x10
libc.so.6`sysconf+0x54c
node`_ZN2v88internal20MarkCompactCollector31NumberOfParallelCompactionTasksEil+0x46
node`_ZN2v88internal20MarkCompactCollector23EvacuatePagesInParallelEv+0xea
node`_ZN2v88internal20MarkCompactCollector29EvacuateNewSpaceAndCandidatesEv+0x67
node`_ZN2v88internal20MarkCompactCollector14CollectGarbageEv+0x29
node`_ZN2v88internal4Heap11MarkCompactEv+0x6d
node`_ZN2v88internal4Heap24PerformGarbageCollectionENS0_16GarbageCollectorENS_15GCCallbackFlagsE+0x4b0
node`_ZN2v88internal4Heap14CollectGarbageENS0_16GarbageCollectorEPKcS4_NS_15GCCallbackFlagsE+0x142
node`_ZN2v88internal4Heap15HandleGCRequestEv+0x84
node`_ZN2v88internal10StackGuard16HandleInterruptsEv+0x31c
node`_ZN2v88internal18Runtime_StackGuardEiPPNS0_6ObjectEPNS0_7IsolateE+0x45
0x2bd84b30961b
0x2bd84b44e1f9
0x2bd84b4490eb
0x2bd84b44281b
0x2bd84b30d157
0x2bd84b442615
0x2bd84b337f84
0x2bd84b322922
node`_ZN2v88internal12_GLOBAL__N_16InvokeEPNS0_7IsolateEbNS0_6HandleINS0_6ObjectEEES6_iPS6_S6_+0xb3
node`_ZN2v88internal9Execution4CallEPNS0_7IsolateENS0_6HandleINS0_6ObjectEEES6_iPS6_+0x61
node`_ZN2v88Function4CallENS_5LocalINS_7ContextEEENS1_INS_5ValueEEEiPS5_+0x139
node`_ZN2v88Function4CallENS_5LocalINS_5ValueEEEiPS3_+0x41
node`_ZN4node9AsyncWrap12MakeCallbackEN2v85LocalINS1_8FunctionEEEiPNS2_INS1_5ValueEEE+0x149
node`_ZN4nodeL5AfterEP7uv_fs_s+0x146
node`uv__work_done+0xa5
node`uv__async_event+0xab
node`uv__async_io+0xa3
node`uv__io_poll+0x3a0
node`uv_run+0x156
node`_ZN4node5StartEiPPc+0x468
libc.so.6`__libc_start_main+0xf5
2
libpthread.so.0`open+0x2d
node`worker+0xa1
node`uv__thread_start+0x19
libpthread.so.0`start_thread+0xc4
62043
docker run -d --name waste-io-example gamlerhart/waste-io
root@3bd53e4a7fe4:/# dtrace -n 'lx-syscall::open:entry/execname=="node"/ { @num[copyinstr(arg0)] = count() }'
dtrace: description 'lx-syscall::open:entry' matched 2 probes
^C
/tmp/io-file-0.00023033588805110305 1
/tmp/io-file-0.00029973264092197915 1
/tmp/io-file-0.001082331117725488 1
/tmp/io-file-0.0017028727466004145 1
/tmp/io-file-0.00224423432995402 1
/tmp/io-file-0.002446706340221372 1
/tmp/io-file-0.002880551536430742 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment