Version 11.3.1
Loading...
Searching...
No Matches
Tools and Techniques

Statistics Logging

WiredTiger can generate statistics that are useful for providing information necessary when performance tuning your WiredTiger application. Here we focus on analyzing and reviewing the data generated by the statistics logging functionality.

Operation Tracking

The purpose of operation tracking is to visualize WiredTiger's execution so that correlations between performance anomalies are easily spotted. This operation tracking tutorial provides a general overview of operation tracking and describes ways to visualize the data in fine detail.

Performance Monitoring

Linux perf is a tool that allows counting and sampling of various events in the hardware and in the kernel. Hardware events are available via performance monitoring units (PMU); they measure CPU cycles, cache misses, branches, etc. Kernel events include scheduling context switches, page faults and block I/O. Here we provide a quick cheat sheet of how to use perf with WiredTiger.

Instrumentation and introspection with XRay

XRay is a tool, originally developed at Google and now integrated in LLVM, that instruments the program such that when it runs it produces a trace of executed functions and their timestamps. This article explains how to instrument WiredTiger, collect the XRay traces, and analyze them.

CPU Flame Graphs

Why is my CPU busy? FlameGraphs help visually summarize on-CPU call stacks and allow for the quick identification of hot code paths. Here we explain how to generate FlameGraphs from WiredTiger perf data.

Testing with LLVM LibFuzzer

LLVM LibFuzzer is an in-process, coverage-guided, evolutionary fuzzing engine. It feeds a series of fuzzed inputs via a "target" function and attempts to trigger crashes, memory bugs and undefined behavior. This article explains how to build and run existing fuzzers, implement new ones and visualize coverage provided by a fuzzer.

Other Resources

The WiredTiger WiredTiger command line utility has facilities for examining tables and metadata, and has various other administrative functions.