<div dir="ltr"><div>Was just reading the small file section of the 3.9 release notes:</div><div><br></div><div><a href="http://blog.gluster.org/2016/11/announcing-gluster-3-9/">http://blog.gluster.org/2016/11/announcing-gluster-3-9/</a><br></div><div><br></div><div>Setting these options does seem to increase transfer speeds on small files by quite alot:</div><div><pre class="gmail-prettyprinted" style="margin-top:0px;margin-bottom:1em;padding:0px;color:rgb(51,51,51);font-size:12px;line-height:18px"><code class="gmail-language-bash gmail-prettyprinted" style="margin:0px 0px 1em;padding:0px"><span class="gmail-pln" style="margin:0px;padding:0px;color:rgb(0,0,0)"><span class="gmail-pln" style="margin:0px;padding:0px">  </span></span><span class="gmail-hljs-comment" style="margin:0px;padding:0px"><span class="gmail-com" style="margin:0px;padding:0px;color:rgb(136,0,0)"><span class="gmail-com" style="margin:0px;padding:0px"># gluster volume set &lt;volname&gt; features.cache-invalidation on</span></span></span><span class="gmail-pln" style="margin:0px;padding:0px;color:rgb(0,0,0)"><span class="gmail-pln" style="margin:0px;padding:0px">
  </span></span><span class="gmail-hljs-comment" style="margin:0px;padding:0px"><span class="gmail-com" style="margin:0px;padding:0px;color:rgb(136,0,0)"><span class="gmail-com" style="margin:0px;padding:0px"># gluster volume set &lt;volname&gt; features.cache-invalidation-timeout 600</span></span></span><span class="gmail-pln" style="margin:0px;padding:0px;color:rgb(0,0,0)"><span class="gmail-pln" style="margin:0px;padding:0px">
  </span></span><span class="gmail-hljs-comment" style="margin:0px;padding:0px"><span class="gmail-com" style="margin:0px;padding:0px;color:rgb(136,0,0)"><span class="gmail-com" style="margin:0px;padding:0px"># gluster volume set &lt;volname&gt; performance.stat-prefetch on       #This one seemed to have the biggest impact in small file performance for me</span></span></span><span class="gmail-pln" style="margin:0px;padding:0px;color:rgb(0,0,0)"><span class="gmail-pln" style="margin:0px;padding:0px">
  </span></span><span class="gmail-hljs-comment" style="margin:0px;padding:0px"><span class="gmail-com" style="margin:0px;padding:0px;color:rgb(136,0,0)"><span class="gmail-com" style="margin:0px;padding:0px"># gluster volume set &lt;volname&gt; performance.cache-invalidation on</span></span></span><span class="gmail-pln" style="margin:0px;padding:0px;color:rgb(0,0,0)"><span class="gmail-pln" style="margin:0px;padding:0px">
  </span></span><span class="gmail-hljs-comment" style="margin:0px;padding:0px"><span class="gmail-com" style="margin:0px;padding:0px;color:rgb(136,0,0)"><span class="gmail-com" style="margin:0px;padding:0px"># gluster volume set &lt;volname&gt; performance.md-cache-timeout 600</span></span></span></code></pre></div><div><br></div><div>Setting <span class="gmail-pln" style="font-size:12px;line-height:18px;margin:0px;padding:0px;color:rgb(0,0,0)"><span class="gmail-pln" style="margin:0px;padding:0px">  </span></span><span class="gmail-hljs-comment" style="color:rgb(51,51,51);font-size:12px;line-height:18px;margin:0px;padding:0px"><span class="gmail-com" style="margin:0px;padding:0px;color:rgb(136,0,0)"><span class="gmail-com" style="margin:0px;padding:0px"># gluster volume set &lt;volname&gt; performance.cache-samba-metadata on     # Only for SMB access. </span></span></span>Results in my client to keep losing the state of the server and the shares often disappear / become inaccessible and I can only get them back if I logon / logoff the machine, this is with distro Samba 4.4.4.</div><div><br></div><div>Has anyone here had the same issue, does the version of samba need to be newer to support the feature ?</div><div><br></div><div>Thanks</div><div><br></div><div class="gmail_extra"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><i>Gary Lloyd</i><div><span style="color:rgb(136,136,136)">______________________________</span><span style="color:rgb(136,136,136)">__________________</span><br><div><span style="color:rgb(136,136,136)">I.T. Systems:Keele University</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">Finance &amp; IT Directorate</span></div><div><span style="color:rgb(136,136,136)">Keele:Staffs:IC1 Building:ST5 5NB:UK</span><br style="color:rgb(136,136,136)"><a href="tel:%2B44%201782%20733073" value="+441782733073" style="color:rgb(17,85,204)" target="_blank">+44 1782 733063</a><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">______________________________</span><span style="color:rgb(136,136,136)">__________________</span></div></div></div></div></div></div></div>
<br><div class="gmail_quote">On 8 February 2017 at 11:49, Дмитрий Глушенок <span dir="ltr">&lt;<a href="mailto:glush@jet.msk.su" target="_blank">glush@jet.msk.su</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>For _every_ file copied samba performs readdir() to get all entries of the destination folder. Then the list is searched for filename (to prevent name collisions as SMB shares are not case sensitive). More files in folder, more time it takes to perform readdir(). It is a lot worse for Gluster because single folder contents distributed among many servers and Gluster has to join many directory listings (requested via network) to form one and return it to caller.</div><div><br></div><div>Rsync does not perform readdir(), it just checks file existence with stat() IIRC. And as modern Gluster versions has default setting to check for file only at its destination (when volume is balanced) - the check performs relatively fast.</div><div><br></div><div>You can hack samba to prevent such checks if your goal is to get files copied not so slow (as you sure the files you are copying are not exists at destination). But try to perform &#39;ls -l&#39; on _not_ cached folder with thousands of files - it will take tens of seconds. This is time your users will waste browsing shares.</div><br><div><blockquote type="cite"><div>8 февр. 2017 г., в 13:17, Gary Lloyd &lt;<a href="mailto:g.lloyd@keele.ac.uk" target="_blank">g.lloyd@keele.ac.uk</a>&gt; написал(а):</div><br class="m_8601874100446621993Apple-interchange-newline"><div><div dir="ltr">Thanks for the reply<div><br></div><div>I&#39;ve just done a bit more testing. If I use rsync from a gluster client to copy the same files to the mount point it only takes a couple of minutes.</div><div>For some reason it&#39;s very slow on samba though (version 4.4.4).</div><div><br></div><div>I have tried various samba tweaks / settings and have yet to get acceptable write speed on small files.</div><div><br></div><div class="gmail_extra"><br clear="all"><div><div class="m_8601874100446621993gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><i>Gary Lloyd</i><div><span style="color:rgb(136,136,136)">______________________________</span><span style="color:rgb(136,136,136)"><wbr>__________________</span><br><div><span style="color:rgb(136,136,136)">I.T. Systems:Keele University</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">Finance &amp; IT Directorate</span></div><div><span style="color:rgb(136,136,136)">Keele:Staffs:IC1 Building:ST5 5NB:UK</span><br style="color:rgb(136,136,136)"><a href="tel:%2B44%201782%20733073" value="+441782733073" style="color:rgb(17,85,204)" target="_blank">+44 1782 733063</a><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">______________________________</span><span style="color:rgb(136,136,136)"><wbr>__________________</span></div></div></div></div></div></div></div>
<br><div class="gmail_quote">On 8 February 2017 at 10:05, Дмитрий Глушенок <span dir="ltr">&lt;<a href="mailto:glush@jet.msk.su" target="_blank">glush@jet.msk.su</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Hi,</div><div><br></div><div>There is a number of tweaks/hacks to make it better, but IMHO overall performance with small files is still unacceptable for such folders with thousands of entries.</div><div><br></div><div>If your shares are not too large to be placed on single filesystem and you still want to use Gluster - it is possible to run VM on top of Gluster. Inside that VM you can create ZFS/NTFS to be shared.</div><br><div><blockquote type="cite"><div>8 февр. 2017 г., в 12:10, Gary Lloyd &lt;<a href="mailto:g.lloyd@keele.ac.uk" target="_blank">g.lloyd@keele.ac.uk</a>&gt; написал(а):</div><br class="m_8601874100446621993m_6782863723204035709Apple-interchange-newline"><div><div dir="ltr"><div>Hi</div><div><br></div><div>I am currently testing gluster 3.9 replicated/distrbuted on centos 7.3 with samba/ctdb.</div><div>I have been able to get it all up and running, but writing small files is really slow. </div><div><br></div><div>If I copy large files from gluster backed samba I get almost wire speed (We only have 1Gb at the moment). I get around half that speed if I copy large files to the gluster backed samba system, which I am guessing is due to it being replicated (This is acceptable).<br></div><div><br></div><div>Small file write performance seems really poor for us though:</div><div>As an example I have an eclipse IDE workspace folder that is 6MB in size that has around 6000 files in it. A lot of these files are &lt;1k in size.</div><div><br></div><div>If I copy this up to gluster backed samba it takes almost one hour to get there.</div><div>With our basic samba deployment it only takes about 5 minutes.</div><div><br></div><div>Both systems reside on the same disks/SAN.</div><div><br></div><div><br></div><div>I was hoping that we would be able to move away from using a proprietary SAN to house our network shares and use gluster instead.</div><div><br></div><div>Does anyone have any suggestions of anything I could tweak to make it better ?</div><div><br></div><div>Many Thanks</div><div><br></div><br clear="all"><div><div class="m_8601874100446621993m_6782863723204035709gmail_signature"><div dir="ltr"><div><div dir="ltr"><i>Gary Lloyd</i><div><span style="color:rgb(136,136,136)">______________________________</span><span style="color:rgb(136,136,136)"><wbr>__________________</span><br><div><span style="color:rgb(136,136,136)">I.T. Systems:Keele University</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">Finance &amp; IT Directorate</span></div><div><span style="color:rgb(136,136,136)">Keele:Staffs:IC1 Building:ST5 5NB:UK</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">______________________________</span><span style="color:rgb(136,136,136)"><wbr>__________________</span></div></div></div></div></div></div></div>
</div>
______________________________<wbr>_________________<br>Gluster-users mailing list<br><a href="mailto:Gluster-users@gluster.org" target="_blank">Gluster-users@gluster.org</a><br><a href="http://lists.gluster.org/mailman/listinfo/gluster-users" target="_blank">http://lists.gluster.org/mailm<wbr>an/listinfo/gluster-users</a></div></blockquote></div><br><div>
<div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div>--</div><div><div style="word-wrap:break-word"><div style="word-wrap:break-word"><div style="word-wrap:break-word"><div>Dmitry Glushenok</div><div>Jet Infosystems</div></div></div></div></div></div></div></div></div></div></div></div>
</div>

<br></div></blockquote></div><br></div></div>
</div></blockquote></div><br><div>
<div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div style="color:rgb(0,0,0);letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;word-wrap:break-word"><div>--</div><div><div style="word-wrap:break-word"><div style="word-wrap:break-word"><div style="word-wrap:break-word"><div>Dmitry Glushenok</div><div>Jet Infosystems</div></div></div></div></div></div></div></div></div></div></div></div>
</div>

<br></div></blockquote></div><br></div></div>