mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-16 22:54:39 +08:00
Doc/slub: document slabinfo-gnuplot.sh script
Add documentation on how to use slabinfo-gnuplot.sh script. Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Acked-by: Christoph Lameter <cl@linux.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
4a981abd11
commit
76f8ec712a
@ -280,4 +280,63 @@ of other objects.
|
||||
|
||||
slub_debug=FZ,dentry
|
||||
|
||||
Extended slabinfo mode and plotting
|
||||
-----------------------------------
|
||||
|
||||
The slabinfo tool has a special 'extended' ('-X') mode that includes:
|
||||
- Slabcache Totals
|
||||
- Slabs sorted by size (up to -N <num> slabs, default 1)
|
||||
- Slabs sorted by loss (up to -N <num> slabs, default 1)
|
||||
|
||||
Additionally, in this mode slabinfo does not dynamically scale sizes (G/M/K)
|
||||
and reports everything in bytes (this functionality is also available to
|
||||
other slabinfo modes via '-B' option) which makes reporting more precise and
|
||||
accurate. Moreover, in some sense the `-X' mode also simplifies the analysis
|
||||
of slabs' behaviour, because its output can be plotted using the
|
||||
slabinfo-gnuplot.sh script. So it pushes the analysis from looking through
|
||||
the numbers (tons of numbers) to something easier -- visual analysis.
|
||||
|
||||
To generate plots:
|
||||
a) collect slabinfo extended records, for example:
|
||||
|
||||
while [ 1 ]; do slabinfo -X >> FOO_STATS; sleep 1; done
|
||||
|
||||
b) pass stats file(-s) to slabinfo-gnuplot.sh script:
|
||||
slabinfo-gnuplot.sh FOO_STATS [FOO_STATS2 .. FOO_STATSN]
|
||||
|
||||
The slabinfo-gnuplot.sh script will pre-processes the collected records
|
||||
and generates 3 png files (and 3 pre-processing cache files) per STATS
|
||||
file:
|
||||
- Slabcache Totals: FOO_STATS-totals.png
|
||||
- Slabs sorted by size: FOO_STATS-slabs-by-size.png
|
||||
- Slabs sorted by loss: FOO_STATS-slabs-by-loss.png
|
||||
|
||||
Another use case, when slabinfo-gnuplot can be useful, is when you need
|
||||
to compare slabs' behaviour "prior to" and "after" some code modification.
|
||||
To help you out there, slabinfo-gnuplot.sh script can 'merge' the
|
||||
`Slabcache Totals` sections from different measurements. To visually
|
||||
compare N plots:
|
||||
|
||||
a) Collect as many STATS1, STATS2, .. STATSN files as you need
|
||||
while [ 1 ]; do slabinfo -X >> STATS<X>; sleep 1; done
|
||||
|
||||
b) Pre-process those STATS files
|
||||
slabinfo-gnuplot.sh STATS1 STATS2 .. STATSN
|
||||
|
||||
c) Execute slabinfo-gnuplot.sh in '-t' mode, passing all of the
|
||||
generated pre-processed *-totals
|
||||
slabinfo-gnuplot.sh -t STATS1-totals STATS2-totals .. STATSN-totals
|
||||
|
||||
This will produce a single plot (png file).
|
||||
|
||||
Plots, expectedly, can be large so some fluctuations or small spikes
|
||||
can go unnoticed. To deal with that, `slabinfo-gnuplot.sh' has two
|
||||
options to 'zoom-in'/'zoom-out':
|
||||
a) -s %d,%d overwrites the default image width and heigh
|
||||
b) -r %d,%d specifies a range of samples to use (for example,
|
||||
in `slabinfo -X >> FOO_STATS; sleep 1;' case, using
|
||||
a "-r 40,60" range will plot only samples collected
|
||||
between 40th and 60th seconds).
|
||||
|
||||
Christoph Lameter, May 30, 2007
|
||||
Sergey Senozhatsky, October 23, 2015
|
||||
|
Loading…
Reference in New Issue
Block a user