<html><head></head><body>echo -n<br><br><div class="gmail_quote">On May 25, 2014 12:18:30 PM PDT, Vipul Nayyar &lt;nayyar_vipul@yahoo.com&gt; wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, Sans-Serif;font-size:10pt"><div style="font-family: monospace;" class="">Hello,<br class="" style="" /></div><div style="font-family: monospace;" class=""><br class="" style="" /></div><div style="font-family: monospace; background-color: transparent;" class="">Thanks Avati for your suggestion. I tried studying the output generated my the meta xlator. One of the problems that I'm facing is that in order to enable latency measurement with meta, I need to write '1' into the the file .meta/measure_latency. But due to some reason I'm not able to do that. I don't get any permission error while writing. But the text written in the file is always the default one. So far I've only been able to change the digit by hard coding it in the meta source and building it again. I ran glusterfs under gdb and set a break point on
 &nbsp;measure_file_write(). The redacted gdb output can be found at http://fpaste.org/104770/<br class="" style="" /><br class="" style="" />As you can see when I try to write 1 (echo 1 &gt; measure_latency) into the file, the data received in iov is "1\n" which gives the correct value in num and this-&gt;ctx-&gt;measure_latency. But somehow, measure_file_write is called again with data iov="\n\n". Therefore I feel that this write process is not doing it's job properly. If you think that I've made some mistake please do notify me.<br class="" style="" /><br class="" style="" />Regards<br class="" style="" />Vipul Nayyar&nbsp;</div> <div class="qtdSeparateBR"><br /><br /></div><div class="yahoo_quoted" style="display: block;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, Sans-Serif; font-size: 10pt;" class=""> <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;" class=""> <div dir="ltr" class="" style="">
<font size="2" face="Arial" class="" style=""> On Saturday, 17 May 2014 6:24 PM, Kaushal M &lt;kshlmster@gmail.com&gt; wrote:<br class="" style="" /> </font> </div>  <br class="" style="" /><br class="" style="" /> <div class="" style=""><div id="yiv0716812936" class="" style=""><div class="" style=""><div dir="ltr" class="" style="">Avati that's awesome! I didn't know that the meta xlator could do that already.</div><div class="" style=""><br clear="none" class="" style="" /><br clear="none" class="" style="" /><div class="" style="">On Sat, May 17, 2014 at 9:30 AM, Anand Avati <span dir="ltr" class="" style="">&lt;<a rel="nofollow" shape="rect" ymailto="mailto:avati@gluster.org" target="_blank" href="mailto:avati@gluster.org" class="" style="">avati@gluster.org</a>&gt;</span> wrote:<br clear="none" class="" style="" />
<blockquote class="" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="" id="yiv0716812936yqt09340" style=""><div dir="ltr" class="" style=""><div class="" style="">KP, Vipul,</div><div class="" style=""><br clear="none" class="" style="" /></div><div class="" style="">It will be awesome to get io-stats like instrumentation on the client side. Here are some further thoughts on how to implement that. If you have a recent git HEAD build, I would suggest that you explore the latency stats on the client side exposed through meta at $MNT/.meta/graphs/active/$xlator/profile. You can enable latency measurement with "echo 1 &gt; $MNT/.meta/measure_latency". I would suggest extending these stats with the extra ones io-stats has, and make glusterfsiostats expose these stats.&nbsp;</div>

<div class="" style=""><br clear="none" class="" style="" /></div><div class="" style="">If you can compare libglusterfs/src/latency.c:gf_latency_begin(), gf_latency_end() and gf_latency_udpate() with the macros in io-stats.c&nbsp;<span style="color:rgb(0,0,0);" class="">UPDATE_PROFILE_STATS() and&nbsp;</span><span style="color:rgb(0,0,0);" class="">START_FOP_LATENCY(), you will quickly realize how a lot of logic is duplicated between io-stats and latency.c. If you can enhance latency.c and make it capture the remaining stats what io-stats is capturing, t</span>he benefits of this approach would be:<div class="" style="">

<br clear="none" class="" style="" /></div><div class="" style="">- stats are already getting captured at all xlator levels, and not just at the position where io-stats is inserted</div><div class="" style="">- file like interface makes the stats more easily inspectable and consumable, and updated on the fly</div>

<div class="" style="">- conforms with the way rest of the internals are exposed through $MNT/.meta</div><div class="" style=""><br clear="none" class="" style="" /></div><div class="" style="">In order to this, you might want to look into:</div><div class="" style="">

<br clear="none" class="" style="" /></div><div class="" style="">-&nbsp;<span style="color:rgb(0,0,0);" class="">latency.c as of today captures fop count, mean latency, total time, whereas io-stats measures these along with min-time, max-time and block-size histogram.</span></div>

<div class="" style=""><span style="color:rgb(0,0,0);" class="">- extend gf_proc_dump_latency_info() to dump the new stats</span></div><div class="" style=""><span style="color:rgb(0,0,0);" class="">- either prettify that output like 'volume profile info' output, or JSONify it like xlators/meta/src/frames-file.c</span></div>

<div class="" style=""><span style="color:rgb(0,0,0);" class="">- add support for cumulative vs interval stats (store an extra copy of this-&gt;latencies[])</span></div><div class="" style=""><span style="color:rgb(0,0,0);" class=""><br clear="none" class="" style="" />

</span></div><div class="" style=""><span style="color:rgb(0,0,0);" class="">etc..</span></div><div class="" style=""><span style="color:rgb(0,0,0);" class=""><br clear="none" class="" style="" /></span></div><div class="" style=""><span style="color:rgb(0,0,0);" class="">Thanks!</span></div>
<div class="" style=""><div class="" style="">
<div class="" style=""><span style="color:rgb(0,0,0);" class=""><br clear="none" class="" style="" /></span></div><div class="" style=""><br clear="none" class="" style="" /></div><div class="" style="">On Fri, Apr 25, 2014 at 9:09 PM, Krishnan Parthasarathi <span dir="ltr" class="" style="">&lt;<a rel="nofollow" shape="rect" ymailto="mailto:kparthas@redhat.com" target="_blank" href="mailto:kparthas@redhat.com" class="" style="">kparthas@redhat.com</a>&gt;</span> wrote:<br clear="none" class="" style="" />

<blockquote class="" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex;">[Resending due to gluster-devel mailing list issue]<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
Apologies for the late reply.<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
glusterd uses its socket connection with brick processes (where io-stats xlator is loaded) to<br clear="none" class="" style="" />
gather information from io-stats via an RPC request. This facility is restricted to brick processes<br clear="none" class="" style="" />
as it stands today.<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
Some background ...<br clear="none" class="" style="" />
io-stats xlator is loaded, both in GlusterFS mounts and brick processes. So, we have the capabilities<br clear="none" class="" style="" />
to monitor I/O statistics on both sides. To collect I/O statistics at the server side, we have<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
# gluster volume profile VOLNAME [start | info | stop]<br clear="none" class="" style="" />
AND<br clear="none" class="" style="" />
#gluster volume top VOLNAME info [and other options]<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
We don't have a usable way of gathering I/O statistics (not monitoring, though the counters could be enhanced)<br clear="none" class="" style="" />
at the client-side, ie. for a given mount point. This is the gap glusterfsiostat aims to fill. We need to remember<br clear="none" class="" style="" />
that the machines hosting GlusterFS mounts may not have glusterd installed on them.<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
We are considering rrdtool as a possible statistics database because it seems like a natural choice for storing time-series<br clear="none" class="" style="" />
data. rrdtool is capable of answering high-level statistical queries on statistics that were logged in it by io-stats xlator<br clear="none" class="" style="" />
over and above printing running counters periodically.<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
Hope this gives some more clarity on what we are thinking.<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
thanks,<br clear="none" class="" style="" />
Krish<br clear="none" class="" style="" />
----- Original Message -----<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
&gt; Probably me not understanding.<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
&gt; the comment "iostats making data available to glusterd over RPC" - is what I<br clear="none" class="" style="" />
&gt; latched on to. I wondered whether this meant that a socket could be opened<br clear="none" class="" style="" />
&gt; that way to get at the iostats data flow.<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
&gt; Cheers,<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
&gt; PC<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
&gt; ----- Original Message -----<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
&gt; &gt; From: "Vipul Nayyar" &lt;<a rel="nofollow" shape="rect" ymailto="mailto:nayyar_vipul@yahoo.com" target="_blank" href="mailto:nayyar_vipul@yahoo.com" class="" style="">nayyar_vipul@yahoo.com</a>&gt;<br clear="none" class="" style="" />
&gt;<br clear="none" class="" style="" />
&gt; &gt; To: "Paul Cuzner" &lt;<a rel="nofollow" shape="rect" ymailto="mailto:pcuzner@redhat.com" target="_blank" href="mailto:pcuzner@redhat.com" class="" style="">pcuzner@redhat.com</a>&gt;, "Krishnan Parthasarathi"<br clear="none" class="" style="" />
&gt; &gt; &lt;<a rel="nofollow" shape="rect" ymailto="mailto:kparthas@redhat.com" target="_blank" href="mailto:kparthas@redhat.com" class="" style="">kparthas@redhat.com</a>&gt;<br clear="none" class="" style="" />
&gt;<br clear="none" class="" style="" />
&gt; &gt; Cc: "Vijay Bellur" &lt;<a rel="nofollow" shape="rect" ymailto="mailto:vbellur@redhat.com" target="_blank" href="mailto:vbellur@redhat.com" class="" style="">vbellur@redhat.com</a>&gt;, "gluster-devel"<br clear="none" class="" style="" />
&gt; &gt; &lt;<a rel="nofollow" shape="rect" ymailto="mailto:gluster-devel@nongnu.org" target="_blank" href="mailto:gluster-devel@nongnu.org" class="" style="">gluster-devel@nongnu.org</a>&gt;<br clear="none" class="" style="" />
&gt;<br clear="none" class="" style="" />
&gt; &gt; Sent: Thursday, 20 February, 2014 5:06:27 AM<br clear="none" class="" style="" />
&gt;<br clear="none" class="" style="" />
&gt; &gt; Subject: Re: [Gluster-devel] New project on the Forge - gstatus<br clear="none" class="" style="" />
&gt;<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
&gt; &gt; Hi Paul,<br clear="none" class="" style="" />
&gt;<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
&gt; &gt; I'm really not sure, if this can be done in python(at least comfortably).<br clear="none" class="" style="" />
&gt; &gt; Maybe we can tread on the same path as Justin's glusterflow in python. But<br clear="none" class="" style="" />
&gt; &gt; I<br clear="none" class="" style="" />
&gt; &gt; don't think, all the io-stats counters will be available with the way how<br clear="none" class="" style="" />
&gt; &gt; Justin's used Jeff Darcy's previous work to build his tool. I can be wrong.<br clear="none" class="" style="" />
&gt; &gt; My knowledge is a bit incomplete and based on very less experience as a<br clear="none" class="" style="" />
&gt; &gt; user<br clear="none" class="" style="" />
&gt; &gt; and an amateur Gluster developer. Please do correct me, if I can be.<br clear="none" class="" style="" />
&gt;<br clear="none" class="" style="" />
<br clear="none" class="" style="" />
&gt; &gt; Regards<br clear="none" class="" style="" />
&gt;<br clear="none" class="" style="" />
&gt; &gt; Vipul Nayyar<br clear="none" class="" style="" />
&gt;<br clear="none" class="" style="" />
_______________________________________________<br clear="none" class="" style="" />
Gluster-devel mailing list<br clear="none" class="" style="" />
<a rel="nofollow" shape="rect" ymailto="mailto:Gluster-devel@gluster.org" target="_blank" href="mailto:Gluster-devel@gluster.org" class="" style="">Gluster-devel@gluster.org</a><br clear="none" class="" style="" />
<a rel="nofollow" shape="rect" target="_blank" href="http://supercolony.gluster.org/mailman/listinfo/gluster-devel" class="" style="">http://supercolony.gluster.org/mailman/listinfo/gluster-devel</a><br clear="none" class="" style="" />
</blockquote></div><br clear="none" class="" style="" /></div></div></div></div></div>
<br clear="none" class="" style="" />_______________________________________________<br clear="none" class="" style="" />
Gluster-devel mailing list<br clear="none" class="" style="" />
<a rel="nofollow" shape="rect" ymailto="mailto:Gluster-devel@gluster.org" target="_blank" href="mailto:Gluster-devel@gluster.org" class="" style="">Gluster-devel@gluster.org</a><br clear="none" class="" style="" />
<a rel="nofollow" shape="rect" target="_blank" href="http://supercolony.gluster.org/mailman/listinfo/gluster-devel" class="" style="">http://supercolony.gluster.org/mailman/listinfo/gluster-devel</a><br clear="none" class="" style="" />
<br clear="none" class="" style="" /></blockquote></div><br clear="none" class="" style="" /></div></div></div><br class="" style="" /><br class="" style="" /></div>  </div> </div>  </div> </div><p style="margin-top: 2.5em; margin-bottom: 1em; border-bottom: 1px solid #000"></p><pre class="k9mail"><hr /><br />Gluster-devel mailing list<br />Gluster-devel@gluster.org<br /><a href="http://supercolony.gluster.org/mailman/listinfo/gluster-devel">http://supercolony.gluster.org/mailman/listinfo/gluster-devel</a><br /></pre></blockquote></div><br>
-- <br>
Sent from my Android device with K-9 Mail. Please excuse my brevity.</body></html>