[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [Qemu-devel] [PATCH v2 0/2] block latency histogram
From: |
Emilio G. Cota |
Subject: |
Re: [Qemu-block] [Qemu-devel] [PATCH v2 0/2] block latency histogram |
Date: |
Thu, 8 Mar 2018 13:56:38 -0500 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Thu, Mar 08, 2018 at 14:42:29 +0300, Vladimir Sementsov-Ogievskiy wrote:
> Hi Emilio!
>
> Looked through qdist, if I understand correctly, it saves each added (with
> different value) element. It is not effective for disk io timing - we'll
> have too much elements. In my approach, histogram don't grow, it initially
> have several ranges and counts hits to each range.
I thought about this use case, i.e. having a gazillion elements.
You should just do some pre-binning before inserting samples
into qdist, as pointed out in this comment in qdist.h:
/*
* Samples with the same 'x value' end up in the same qdist_entry,
* e.g. inc(0.1) and inc(0.1) end up as {x=0.1, count=2}.
*
* Binning happens only at print time, so that we retain the flexibility to
* choose the binning. This might not be ideal for workloads that do not care
* much about precision and insert many samples all with different x values;
* in that case, pre-binning (e.g. entering both 0.115 and 0.097 as 0.1)
* should be considered.
*/
struct qdist_entry {
double x;
unsigned long count;
};
Let me know if you need help with that.
Thanks,
Emilio
Re: [Qemu-block] [Qemu-devel] [PATCH v2 0/2] block latency histogram, Eric Blake, 2018/03/08