Debugging and Performance Analysis Using DTrace
Description
In this session, attendees will be given a few example applications written in Node.js that have bugs and/or performance issues. To do the debugging, we'll be using DTrace and mdb on SmartOS.
With this training, you will learn
- How to use DTrace probes to examine performance issues with Node.js applications.
- How to use mdb to examine objects in your app
- How to add DTrace probes to your app
Trainers
Preparations for this training
In order to prepare to this training you should/must do the following List of readings and exercises. If you have questions, please open an issue and we will be glad to answer, you might be helping other participants too.
TODO List
To get the most out of this session, you'll need to have a system running SmartOS. There are 2 ways to do this:
- Run it in a virtual machine on VMware, Parallels, VirtualBox, or some other virtual machine environment.
- Get a virtual machine from the Joyent cloud.
To run SmartOS in a virtual machine, go to http://wiki.smartos.org/display/DOC/Download+SmartOS, where you'll find SmartOS images to download, along with instructions. After SmartOS is booted, you'll need to create a zone. Instructions are at http://wiki.smartos.org/display/DOC/How+to+create+a+zone+%28+OS+virtualized+machine+%29+in+SmartOS.
You can choose an image that has node pre-installed by running:
imgadm avail | grep node
Or, you can install a base-64 image and then
pkgin install node
To run a machine in the Joyent cloud, go to http://www.joyent.com, create an account, and then provision a machine, (there are machines that have node pre-installed).
In the Joyent cloud, there is a free Developer Tier, which allows you to create one small instance valid for 1 year of trial usage. However, to provision that instance you must add a valid credit card to your account so we can validate that the account is not fraudulent.
New accounts won’t be billed if they only provision that single developer tier instance.
Test by running node on the code example in materials. More examples will be coming.
Materials
- More to come shortly
27 jun - 17:30h Participants
- Joaquim Serafim - joaquimserafim
- Igor Soarez - soarez
- Daniel da Silva - danielfdsilva
- Nelson Correia - nelsonic
- Ines Teles - iteles
- David McMullin - davecocoa
- Thomas Parisot - oncletom
- George Shank - taterbase
- Dominykas Blyžė - dymonaz
- Ricardo Melo - rjsmelo
- Zoltan Feher - zkiiito
- Gábor Balázs - balazsgabor
- Miguel Coquet - mcoquet
- Stefan Jansen - xtravanta
- Ricardo Quintas - rdquintas
- Luke Bond - lukebond
- Tom Ashworth - phuu
- Luís Ferreira - zamith
- Miguel Palhas - naps62
- Ronaldo Sousa - ronaldofs
- Luís Miranda - luispmiranda
- António Pires - borgesPires
- Peter Milan - pity
- Alex McFadyen - a-c-m
- Mauro Pompilio - malditogeek
- Andrew Newdigate - suprememoocow
- Tom Gallacher - tomgco
- Thiago Dantas - tdantas
28 jun - 14:30h Participants
- Igor Soarez - soarez
- Pierre Ozoux - pierreozoux
- Telmo Costa - telmofcosta
- Pedro Carrico - pedrocarrico
- João Jerónimo - joaojeronimo
- Robert Kowalski - robertkowalski
- Filipe Dias - filipediasferreira
- Abel Soares - abelsoares
- Matej Nemcek - yangwao
- Karolis Narkevicius - KidkArolis
- Alexandre Campos - axfcampos
- João Nelas - adagios
- Marco Oliveira - marcooliveira
- Ricardo Tomasi - ricardobeat
- Tiago Rodrigues - trodrigues
- Derek Johnston - derekbjohnston
- Dominic Lüchinger - dol
- Max Gfeller - MaxGfeller
- Tom Cartwright - tomcartwrightuk
- James Nocentini - jamiltz
- Kevin Sawicki - kevinsawicki
- Jorge Monteiro - jorgemonteiro
- Gabriel Poça - gabrielpoca
- João Ribeiro - JoaoCasalNovo
- Rui Carneiro - sgtcarneiro
- Tiago Morais - tnbmorais
- Nathan Sobo - nathansobo
- Andy Trevorah - trevorah
- Tom Gallacher - tomgco
- Kristoffer Brabrand - kbrabrand
- Gergely Nemeth - gergelyke
- Gegely Szanto - szantogeri
- Ricardo Batista - nihildacta