ASHviz: Accidentally good

ASHviz: Accidentally good

This is a short blurb about being sensitive to whether a visualization that works well in a specific case will translate to more general cases.

The plot below shows Average Active Sessions aggregated separately by minute for each STATE_CLASS and over all instances, plotted as a simple line chart.

Plot of AAS by minute, broken down by wait class (and CPU)

When I first saw the plot it struck me as quite informative about what was happening on the cluster during the time interval:

  • database activity (time) is spent mostly in three classes: User I/O, Cluster, and CPU
  • time spent waiting on User I/O dominates time on CPU or in Cluster wait by a factor of 3 or more
  • two very large spikes in Cluster wait time (5-8x normal) occurred, one around 11:53 and a second at 12:02
  • preceding/concurrent with the second spike there was increased activity in two other wait classes

Filled with confidence, my next thought was to investigate if the two "incidents" were instance-specific or cluster-wide. This is accomplished by faceting the plot on INSTANCE_NUMBER:

Plot of AAS by minute broken down by wait class and faceted by instance

Here we see that both spikes were concurrent and similar in size on all instances, so the incidents were cluster-wide. Observe also that session activity (load) in all three of the dominant classes is very similar, from which we tentatively conclude the cluster processes highly consistent and load-balanced workload. Finally, notice the almost 10 minute variation in time ranges for the separate ASH dumps, and be reminded that ASH samplers are independent and samples are variable length records so each circular ASH buffer will wrap around at different times.

OK, at this point I really think I know something about this cluster, and in fact I actually do. But why do these line charts seem to work? Well the answer is really because there are only 3 lines with any activity at all and very few line intersections among these. Visually independent lines can each tell their own story without much interference, but crossing lines makes for messaging confusion. So the truth here is that the DATA made the line chart visualization work in this case. In another case, with other data, it could work heavily against interpretation.

For instance, reversing the roles of INSTANCE_NUMBER and STATE_CLASS from the plot above (coloring by instance and faceting by state) we get the following:

No alt text provided for this image

What can be said about it, other than "it's squiggly"...?

So when a specific data visualization seems to tell a good story, think about whether this will be true generally, for you will want to tell more stories. Don't fall in love with an "accidentally good" visualization.

要查看或添加评论,请登录

John Beresniewicz的更多文章

  • Estimating OLTP Execution Latencies Using ASH

    Estimating OLTP Execution Latencies Using ASH

    I want to share something super-useful about Active Session History that I came to understand only last week. Examining…

    17 条评论
  • ASHviz: Dark matter 2

    ASHviz: Dark matter 2

    This article extends the discussion of "dark matter" in ASH by exploring a completely new source of data about event…

  • ASHviz: Fiddling with violins

    ASHviz: Fiddling with violins

    The last ASHviz installment, Densities and dark matter, was a bit of a cognitive burden, but the concepts introduced…

  • ASHviz: Densities and dark matter

    ASHviz: Densities and dark matter

    This installment gets into some deeper concepts relative to visualizing event latency distributions as well as using…

  • ASHviz: Can you box that, please?

    ASHviz: Can you box that, please?

    This installment explores the distribution of sampled event latencies from the ASH dump using `geom_boxplot( )`. ASH…

  • ASHviz: Issue at the x-axis

    ASHviz: Issue at the x-axis

    Take another look at the plot in header above. This plot aggregates ASH data by STATE_CLASS using SAMPE_TIME as the…

  • ASHviz: Visualizing ASH dumps with Jupyter Notebooks

    ASHviz: Visualizing ASH dumps with Jupyter Notebooks

    This article begins what I hope will be an interesting series focusing on some data visualization research I have been…

  • Visualizing Performance Benchmarks (4) - Validate, analyze, conclude

    Visualizing Performance Benchmarks (4) - Validate, analyze, conclude

    In this final episode, we VALIDATE our suspicions about the file-based configurations bottlenecking on read I/O…

    12 条评论
  • Simple SQL Injection Vulnerability Testing

    Simple SQL Injection Vulnerability Testing

    According to The Open Web Application Security Project (OWASP), injection remains the number one category of security…

    3 条评论
  • Visualizing Performance Benchmarks (3) - Start Small and Predict

    Visualizing Performance Benchmarks (3) - Start Small and Predict

    So far in this series we've seen some nice visualizations of elapsed time data for loading a large number of 5GB files…

社区洞察

其他会员也浏览了