<p dir="ltr">Right, so what I did is:<br>
- on one node (gluster 3.7.3), run &#39;gluster volume shared profile start&#39;<br>
- on the client mount, run the test<br>
- on the node, run &#39;gluster volume shared profile info&#39; (and copied the output)<br>
- finally, ran &#39;gluster volume profile shared stop&#39;</p>
<p dir="ltr">I repeated this for two different tests (simple rm followed by svn checkout, and a more complete build test), on an NFS mount and on a Fuse mount.</p>
<p dir="ltr">To my surprise the svn checkout is actually a lot faster (3x) on the Fuse mount than NFS.<br>
However the build test is a lot slower on the Fuse mount (+50%, which is a lot considering the compilation is CPU intensive, not just I/Os!).</p>
<p dir="ltr">Ben I will send you the profile outputs separately now...</p>
<div class="gmail_quote">On 29 Sep 2015 9:40 pm, &quot;Ben Turner&quot; &lt;<a href="mailto:bturner@redhat.com">bturner@redhat.com</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">----- Original Message -----<br>
&gt; From: &quot;Thibault Godouet&quot; &lt;<a href="mailto:tibo92@godouet.net">tibo92@godouet.net</a>&gt;<br>
&gt; To: &quot;Ben Turner&quot; &lt;<a href="mailto:bturner@redhat.com">bturner@redhat.com</a>&gt;<br>
&gt; Cc: <a href="mailto:hmlth@t-hamel.fr">hmlth@t-hamel.fr</a>, <a href="mailto:gluster-users@gluster.org">gluster-users@gluster.org</a><br>
&gt; Sent: Tuesday, September 29, 2015 1:36:20 PM<br>
&gt; Subject: Re: [Gluster-users] Tuning for small files<br>
&gt;<br>
&gt; Ben,<br>
&gt;<br>
&gt; I suspect meta-data / &#39;ls -l&#39; performance is very important for my svn<br>
&gt; use-case.<br>
&gt;<br>
&gt; Having said that, what do you mean by small file performance? I thought<br>
&gt; what people meant by this was really the overhead of meta-data, with a &#39;ls<br>
&gt; -l&#39; being a sort of extreme case (pure meta-data).<br>
&gt; Obviously if you also have to read and write actual data (albeit not much<br>
&gt; at all per file), then the effect of meta-data overhead would get diluted<br>
&gt; to a degree, bit potentially still very present.<br>
<br>
Where you run into problems with smallfiles on gluster is latency of sending data over the wire.  For every smallfile create there are a bunch of different file opetations we have to do on every file.  For example we will have to do at least 1 lookup per brick to make sure that the file doesn&#39;t exist anywhere before we create it.  We actually got it down to 1 per brick with lookup optimize on, its 2 IIRC(maybe more?) with it disabled.  So the time we spend waiting for those lookups to complete adds to latency which lowers the number of files that can be created in a given period of time.  Lookup optimize was implemented in 3.7 and like I said its now at the optimal 1 lookup per brick on creates.<br>
<br>
The other problem with small files that we had in 3.6 is that we were using a single threaded event listener(epoll is what we call it).  This single thread would spike a CPU to 100%(called a hot thread) and glusterfs would become CPU bound.  The solution here was to make the event listener multi threaded so that we could spread the epoll load across CPUs there by eliminating the CPU bottleneck and allowing us to process more events in a given time.  FYI epoll is defaulted to 2 threads in 3.7, but I have seen cases where I still bottlenecked on CPU without 4 threads in my envs, so I usually do 4.  This was implemented in upstream 3.7 but was backported to RHGS 3.0.4 if you have a RH based version.<br>
<br>
Fixing these two issues lead to the performance gains I was talking about with smallfile creates.  You are probably thinking from a distributed FS + metadata server perspective(MDS) where the bottleneck is the MDS for smallfiles.  Since gluster doesn&#39;t have an MDS that load is transferred to the clients / servers and this lead to a CPU bottleneck when epoll was single threaded.  I think this is the piece you may have been missing.<br>
<br>
&gt;<br>
&gt; Would there be an easy way to tell how much time is spent on meta-data vs.<br>
&gt; Data in a profile output?<br>
<br>
Yep!  Can you gather some profiling info and send it to me?<br>
<br>
&gt;<br>
&gt; One thing I wonder: do your comments apply to both native Fuse and NFS<br>
&gt; mounts?<br>
&gt;<br>
&gt; Finally, all this brings me back to my initial question really: are there<br>
&gt; any tuning recommendation of configuration tuning for my requirement (small<br>
&gt; file read/writes on a pair of nodes with replication) beyond the thread<br>
&gt; counts and lookup optimize?<br>
&gt; Or are those by far the most important in this scenario?<br>
<br>
For creating a bunch of small files those are the only two that I know of that will have a large impact, maybe some others from the list can give some input on anything else we can do here.<br>
<br>
-b<br>
<br>
&gt;<br>
&gt; Thx,<br>
&gt; Thibault.<br>
&gt; ----- Original Message -----<br>
&gt; &gt; From: <a href="mailto:hmlth@t-hamel.fr">hmlth@t-hamel.fr</a><br>
&gt; &gt; To: <a href="mailto:abauer@magix.net">abauer@magix.net</a><br>
&gt; &gt; Cc: <a href="mailto:gluster-users@gluster.org">gluster-users@gluster.org</a><br>
&gt; &gt; Sent: Monday, September 28, 2015 7:40:52 AM<br>
&gt; &gt; Subject: Re: [Gluster-users] Tuning for small files<br>
&gt; &gt;<br>
&gt; &gt; I&#39;m also quite interested by small files performances optimization, but<br>
&gt; &gt; I&#39;m a bit confused about the best option between 3.6/3.7.<br>
&gt; &gt;<br>
&gt; &gt; Ben Turner was saying that 3.6 might give the best performances:<br>
&gt; &gt; <a href="http://www.gluster.org/pipermail/gluster-users/2015-September/023733.html" rel="noreferrer" target="_blank">http://www.gluster.org/pipermail/gluster-users/2015-September/023733.html</a><br>
&gt; &gt;<br>
&gt; &gt; What kind of gain is expected (with consistent-metadata) if this<br>
&gt; &gt; regression is solved?<br>
&gt;<br>
&gt; Just to be clear, the issue I am talking about is metadata only(think ls -l<br>
&gt; or file browsing).  It doesn&#39;t affect small file perf(well not that much,<br>
&gt; I&#39;m sure a little, but I have never quantified it), with server and client<br>
&gt; event threads set to 4 + lookup optimize I see between a 200-300% gain on<br>
&gt; my systems on 3.7 vs 3.6 builds.  If I needed fast metadata I would go with<br>
&gt; 3.6, if I need fast smallfile I would go with 3.7.  If I needed both I<br>
&gt; would pick the less of the two evils and go with that one and upgrade when<br>
&gt; the fix is released.<br>
&gt;<br>
&gt; -b<br>
&gt;<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt; I tried 3.6.5 (last version for debian jessie), and it&#39;s a bit better<br>
&gt; &gt; than 3.7.4 but not by much (10-15%).<br>
&gt; &gt;<br>
&gt; &gt; I was also wondering if there is recommendations for the underlying file<br>
&gt; &gt; system of the bricks (xfs, ext4, tuning...).<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Regards<br>
&gt; &gt;<br>
&gt; &gt; Thomas HAMEL<br>
&gt; &gt;<br>
&gt; &gt; On 2015-09-28 12:04, André Bauer wrote:<br>
&gt; &gt; &gt; If you&#39;re not already on Glusterfs 3.7.x i would recommend an update<br>
&gt; &gt; &gt; first.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Am 25.09.2015 um 17:49 schrieb Thibault Godouet:<br>
&gt; &gt; &gt;&gt; Hi,<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; There are quite a few tuning parameters for Gluster (as seen in<br>
&gt; &gt; &gt;&gt; Gluster<br>
&gt; &gt; &gt;&gt; volume XYZ get all), but I didn&#39;t find much documentation on those.<br>
&gt; &gt; &gt;&gt; Some people do seem to set at least some of them, so the knowledge<br>
&gt; &gt; &gt;&gt; must<br>
&gt; &gt; &gt;&gt; be somewhere...<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; Is there a good source of information to understand what they mean,<br>
&gt; &gt; &gt;&gt; and<br>
&gt; &gt; &gt;&gt; recommendation on how to set them to get a good small file<br>
&gt; &gt; &gt;&gt; performance?<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; Basically what I&#39;m trying to optimize is for svn operations (e.g. svn<br>
&gt; &gt; &gt;&gt; checkout, or svn branch) on a replicated 2 x 1 volume (hosted on 2<br>
&gt; &gt; &gt;&gt; VMs,<br>
&gt; &gt; &gt;&gt; 16GB ram, 4 cores each, 10Gb/s network tested at full speed), using a<br>
&gt; &gt; &gt;&gt; NFS mount which appears much faster than fuse in this case (but still<br>
&gt; &gt; &gt;&gt; much slower than when served by a normal NFS server).<br>
&gt; &gt; &gt;&gt; Any recommendation for such a setup?<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; Thanks,<br>
&gt; &gt; &gt;&gt; Thibault.<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; _______________________________________________<br>
&gt; &gt; &gt;&gt; Gluster-users mailing list<br>
&gt; &gt; &gt;&gt; <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
&gt; &gt; &gt;&gt; <a href="http://www.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">http://www.gluster.org/mailman/listinfo/gluster-users</a><br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; --<br>
&gt; &gt; &gt; Mit freundlichen Grüßen<br>
&gt; &gt; &gt; André Bauer<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; MAGIX Software GmbH<br>
&gt; &gt; &gt; André Bauer<br>
&gt; &gt; &gt; Administrator<br>
&gt; &gt; &gt; August-Bebel-Straße 48<br>
&gt; &gt; &gt; 01219 Dresden<br>
&gt; &gt; &gt; GERMANY<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; tel.: 0351 41884875<br>
&gt; &gt; &gt; e-mail: <a href="mailto:abauer@magix.net">abauer@magix.net</a><br>
&gt; &gt; &gt; <a href="mailto:abauer@magix.net">abauer@magix.net</a> &lt;mailto:<a href="mailto:Email">Email</a>&gt;<br>
&gt; &gt; &gt; <a href="http://www.magix.com" rel="noreferrer" target="_blank">www.magix.com</a> &lt;<a href="http://www.magix.com/" rel="noreferrer" target="_blank">http://www.magix.com/</a>&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Geschäftsführer | Managing Directors: Dr. Arnd Schröder, Michael Keith<br>
&gt; &gt; &gt; Amtsgericht | Commercial Register: Berlin Charlottenburg, HRB 127205<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Find us on:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &lt;<a href="http://www.facebook.com/MAGIX" rel="noreferrer" target="_blank">http://www.facebook.com/MAGIX</a>&gt; &lt;<a href="http://www.twitter.com/magix_de" rel="noreferrer" target="_blank">http://www.twitter.com/magix_de</a>&gt;<br>
&gt; &gt; &gt; &lt;<a href="http://www.youtube.com/wwwmagixcom" rel="noreferrer" target="_blank">http://www.youtube.com/wwwmagixcom</a>&gt; &lt;<a href="http://www.magixmagazin.de" rel="noreferrer" target="_blank">http://www.magixmagazin.de</a>&gt;<br>
&gt; &gt; &gt; ----------------------------------------------------------------------<br>
&gt; &gt; &gt; The information in this email is intended only for the addressee named<br>
&gt; &gt; &gt; above. Access to this email by anyone else is unauthorized. If you are<br>
&gt; &gt; &gt; not the intended recipient of this message any disclosure, copying,<br>
&gt; &gt; &gt; distribution or any action taken in reliance on it is prohibited and<br>
&gt; &gt; &gt; may be unlawful. MAGIX does not warrant that any attachments are free<br>
&gt; &gt; &gt; from viruses or other defects and accepts no liability for any losses<br>
&gt; &gt; &gt; resulting from infected email transmissions. Please note that any<br>
&gt; &gt; &gt; views expressed in this email may be those of the originator and do&gt; &gt;<br>
&gt; Gluster-users mailing list<br>
&gt; &gt; &gt; <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
&gt; &gt; &gt; <a href="http://www.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">http://www.gluster.org/mailman/listinfo/gluster-users</a><br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; Gluster-users mailing list<br>
&gt; &gt; <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
&gt; &gt; <a href="http://www.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">http://www.gluster.org/mailman/listinfo/gluster-users</a><br>
&gt; _______________________________________________<br>
&gt; Gluster-users mailing list<br>
&gt; <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
&gt; <a href="http://www.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">http://www.gluster.org/mailman/listinfo/gluster-users</a><br>
&gt;<br>
</blockquote></div>