Re: + doc-slub-document-slabinfo-gnuplotsh-script.patch added to -mm tree

From: Sergey Senozhatsky
Date: Fri Oct 23 2015 - 00:19:29 EST


On (10/22/15 13:21), akpm@xxxxxxxxxxxxxxxxxxxx wrote:
[..]
> ------------------------------------------------------
> From: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
> Subject: Doc/slub: document slabinfo-gnuplot.sh script
>
> Add documentation on how to use slabinfo-gnuplot.sh script.
>
> Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>

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.senozhatsky@xxxxxxxxx

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.senozhatsky@xxxxxxxxx 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 majordomo@xxxxxxxxxxxxxxx
> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/