DTrace: Core Features and Performance Analysis

Duration: 3 days

Description

This course introduces DTrace and teaches common performance analysis techniques. It is intended for system support staff, system administrators, developers, and anyone who would like to quickly learn DTrace and some practical methods for applying it. This course teaches core features of DTrace that are available in many enterprise and cloud computing environments, and is taught from a Joyent SmartMachine, a restricted environment that provides these features. Kernel internal analysis is not covered. (An advanced course for kernel-level DTrace is planned in the future.)

This course makes extensive use of labs, where performance issues based on real-world cases are simulated in isolation for the students to solve, with help from the instructor. For some this is the highlight of the course, putting the methodologies learned into practice and seeing how they work first-hand.

Objectives

On completion of this course, students will be able to:

  • Explain Dynamic Tracing and DTrace
  • Describe DTrace features, including probes, providers, actions, aggregations
  • Identify opportunities for improving performance using DTrace
  • Use pre-written DTrace one-liners and scripts
  • Solve performance issues using workload characterization
  • Solve performance issues using latency analysis
  • Use DTrace to analyze system calls in custom ways
  • Understand the D language, actions, and variables
  • Profile CPU usage of user-level applications, identifying hot code paths
  • Interpret and generate Flame Graphs
  • Analyze I/O latency using the syscall and sched providers
  • Analyze process execution using the proc provider
  • Investigate virtual memory events using the vminfo provider
  • Investigate system events using the sysinfo provider
  • Use the pid provider for application analysis
  • Understand the plockstat provider
  • Explain the role of USDT providers
  • Use USDT providers for application analysis
  • Understand the general process for adding USDT providers, and the opportunities this creates for application performance analysis and debugging
  • Add DTrace to your skill set

Prerequisites

  • UNIX fundamentals: understand syscalls; strace/truss experience is ideal
  • Programming experience: shell scripting is fine; awk is great

Topic Outline

  1. Introduction
  2. System Calls and D
  3. Workload Characterization
  4. Latency Analysis
  5. Profiling
  6. Providers – OS Level
  7. Providers – User Level
  8. Using & Developing USDT

Dates

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.