Advanced Performance Analysis and Debugging for Node.js
Thank you for your interest in Joyent Training Services.
Duration: 3 days
This course covers using DTrace and mdb to troubleshoot bugs and performance issues with Node.js applications and the Node.js engine. We examine all facets of the Node.js software stack, including the operating system itself, Node.js/v8, and node applications. For those unfamiliar with DTrace and mdb, an introduction with many examples is shown. Existing DTrace probes for node modules, including restify and bunyan, are examined. Also covered: adding DTrace probes to node applications, and adding probes to new node modules, and the use of mdb and DTrace to examine node application state. Techniques, strategies, and tools for debugging node applications on any operating system are also discussed. The course has extensive lab exercises to reinforce the concepts and techniques covered.
On completion of this course, students will be able to:
- Describe the most common error- and performance-related issues with respect to Node.js applications. These include:
- Race conditions
- Timing errors
- Logic errors
- Memory leaks
- Poor API usage
- Explain the purpose and use of DTrace
- Add DTrace probes to Node.js applications
- Write DTrace one-liners and scripts to examine the Node.js application stack
- Use mdb to examine node application and engine state
- Use mdb to examine post-mortem crash dumps
- Explain stack traces
- Determine root causes of most common problems.
- Use other tools available on SmartOS to help understand performance issues and bugs.
- Build and explain flamegraphs.
- Describe node-specific tools available to do debugging.
Students taking this course should have Node.js programming experience. Some DTrace knowledge, as acquired in Joyent's DTrace Core Features and Performance Analysis course, is helpful, as is some knowledge of SmartOS.
- What is DTrace?
- What are the uses of DTrace?
- DTrace terminology
- DTrace command line syntax
- Brief description of how DTrace works
- Examples of various useful 1-liner DTrace commands and simple D scripts
- Tracing the kernel
- Tracing the Node Engine
- Node dtrace-provider
- pid provider
- profile provider
- Tracing Node.js applications
- Adding probes
- Using node-restify probes
- Using bunyan
- SmartOS Tools
- Monitoring Tools
See course calendar
Training Course Request Form
Thanks for your interest in training from Joyent!
Please use this form to let us know what courses you might like to attend or see added to the schedule. We will contact you to get more details on how we can meet your training needs.