summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/docs/tool-index.dox
blob: a4b506d542241c4a6a2d07855f79a76b2b307873 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*! @page tool-index Tools and Techniques

@subpage tool-statistics

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.

@subpage tool-optrack

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.

@subpage tool-perf

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.

@subpage tool-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.

@subpage tool-perf-flamegraphs

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.

@subpage tool-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.

@section tool-other Other Resources

The WiredTiger @ref command_line has facilities for examining tables
and metadata, and has various other administrative functions.

*/