[Gluster-devel] Proposal for change regarding latency calculation
Joe Julian
joe at julianfamily.org
Sun Jul 27 19:03:33 UTC 2014
I would want tests of all the posix operations. Need a difference not
just in throughput, but in max iops for the various ops.
On 07/27/2014 08:27 AM, Vipul Nayyar wrote:
> Hi
>
> As guided by you, I performed the experiment regarding measurement of
> the effect of always enabled profiling. I performed two write tests,
> one with a 20 MB file and the other with a 730 MB file. Each file was
> written 20 times to the mounted volume after clearing the buffers on
> every iteration and the time taken measured with the time command. I
> ran the following bash script for this purpose.
>
> i=1
> while [[ $i -lt 21 ]]; do
> sync && echo 3 > /proc/sys/vm/drop_caches
> path="/mnt/write_test"$i
> out=$( time cp /home/vipul/test.avi $path)
> i=$((i+1))
> done
>
> Since the values at different times for writing the same file are
> quite varied, I plotted a graph using the obtained values(Y-axis
> represents seconds) which can be found attached. As you might see in
> these images, there is no clear pattern found in the variation of
> values obtained while writing.
>
> So according to me, values in both the conditions are quite near to
> each other and equally capable of going quite high or low than the
> mean value and hence, there is no negative effect seen due to the
> change proposed. I hope someone else can shed more light on whether
> setting the option(always enabled profiling) really decreased the
> performance or not.
>
> Regards
> Vipul Nayyar
>
>
>
> On Wednesday, 16 July 2014 12:50 PM, Krishnan Parthasarathi
> <kparthas at redhat.com> wrote:
>
>
> Vipul,
>
> ------------------------------------------------------------------------
>
> Hello,
>
> Following is a proposal for modifying the io profiling capability
> of the io-stats xlator. I recently sent in a
> patch(review.gluster.org/#/c/8244/) regarding that, which uses the
> already written latency related functions in io-stats to dump info
> through meta and added some more data containers which would track
> some more fops related info each time a request goes through
> io-stats. Currently, before the io-stats' custom latency functions
> can run, the measure_latency and count_fop_hits option should be
> enabled. I propose to remove these two options entirely from io-stats.
>
> In order to track io performance, these options should be enabled
> all the time, or removed entirely, so that a record of io requests
> can be kept since mount time, else enabling these options only
> when it is required will not give you the average statistics over
> the whole period since the start. This is based on the methodology
> of Linux kernel itself, since it internally maintains the io
> statistics data structures all the time and presents it via /proc
> filesystem whenever required. Enabling of any option is not
> required, and the data available represents statistics since the
> boot time.
>
> I would like to know the views over this, if having io-stats
> profiling info available all the time would be a good thing?
>
> Could you run the following experiment to measure the effect of
> profiling being enabled always?
> - Fix the I/O workload to be run.
> - Setup 1 (control group) : Run the fixed workload on a volume with
> both the profiling options NOT set.
> - Setup 2 : Run the (same) fixed workload on the same volume with the
> profiling options set.
> - In both setup, measure the latencies observed by the said workload.
> You could use time(1) command
> for a crude measurement.
>
> This should allow us to make an informed decision on whether there is
> any performance effect
> when profiling is enabled on a volume by default.
>
>
> Apart from this, I was going over latency.c in libglusterfs, which
> does a fine job of maintaining latency info for every xlator and
> encountered an anomaly which I thought should be dealt with. The
> function gf_proc_dump_latency_info which dumps the latency array
> for the specified xlator consists of a last line which in the end
> flushes this array through memset after every dump. That means,
> you get different latency info every time you read the profile
> file in meta. I think, flushing the data structure after every
> dump is wrong since, you don't get overall stats since one enabled
> the option at the top of meta, and more importantly, multiple
> applications reading this file can get wrong info, since it gets
> cleared after one read only.
>
> Clearing of the statistics on every request sounds incorrect to me.
> Could you please send a patch to fix this?
>
> thanks,
> Krish
>
>
> If my reasons seem apt for you, I'll send a patch over for evaluation.
>
> Regards
> Vipul Nayyar
>
>
>
>
>
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://supercolony.gluster.org/mailman/listinfo/gluster-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-devel/attachments/20140727/fec83653/attachment-0001.html>
More information about the Gluster-devel
mailing list