On (10/22/15 13:21), a...@linux-foundation.org wrote: [..] > ------------------------------------------------------ > From: Sergey Senozhatsky <sergey.senozhat...@gmail.com> > Subject: Doc/slub: document slabinfo-gnuplot.sh script > > Add documentation on how to use slabinfo-gnuplot.sh script. > > Signed-off-by: Sergey Senozhatsky <sergey.senozhat...@gmail.com> > Signed-off-by: Andrew Morton <a...@linux-foundation.org>
Oh, sent "Documentation/vm/slub.txt: document slabinfo-gnuplot.sh" patch (addressed Christoph's comments) before I saw this message. V2 message-id: 1445557905-9565-1-git-send-email-sergey.senozhat...@gmail.com Andrew, should I send an incremental update to this patch instead or you will 'replace' it with the v2? -ss > --- > > Documentation/vm/slub.txt | 58 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 58 insertions(+) > > diff -puN > Documentation/vm/slub.txt~doc-slub-document-slabinfo-gnuplotsh-script > Documentation/vm/slub.txt > --- a/Documentation/vm/slub.txt~doc-slub-document-slabinfo-gnuplotsh-script > +++ a/Documentation/vm/slub.txt > @@ -280,4 +280,62 @@ of other objects. > > slub_debug=FZ,dentry > > +Extended slabinfo mode and plotting > +----------------------------------- > + > +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 > _ > > Patches currently in -mm which might be from sergey.senozhat...@gmail.com are > > maintainers-add-myself-as-zsmalloc-reviewer.patch > tools-vm-slabinfo-use-getopt-no_argument-optional_argument.patch > tools-vm-slabinfo-limit-the-number-of-reported-slabs.patch > tools-vm-slabinfo-sort-slabs-by-loss.patch > tools-vm-slabinfo-fix-alternate-opts-names.patch > tools-vm-slabinfo-introduce-extended-totals-mode.patch > tools-vm-slabinfo-output-sizes-in-bytes.patch > tools-vm-slabinfo-cosmetic-globals-cleanup.patch > tools-vm-slabinfo-gnuplot-slabifo-extended-stat.patch > doc-slub-document-slabinfo-gnuplotsh-script.patch > zram-keep-the-exact-overcommited-value-in-mem_used_max.patch > mm-zsmalloc-constify-struct-zs_pool-name.patch > zsmalloc-use-preempth-for-in_interrupt.patch > > -- > To unsubscribe from this list: send the line "unsubscribe mm-commits" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/