Loading Documentation/vm/slub.txt +59 −0 Original line number Diff line number Diff line Loading @@ -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
Documentation/vm/slub.txt +59 −0 Original line number Diff line number Diff line Loading @@ -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