<p dir="ltr">Thanks Anand.  That would be interesting to see indeed.</p>
<div class="gmail_quote">On 17 Aug 2015 4:55 am, &quot;Anand Subramanian&quot; &lt;<a href="mailto:ansubram@redhat.com">ansubram@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">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>Hi Thibault,<br>
      <br>
      There are a few tuneables that have helped boost ganesha
      performance and I suspect these tuneables on the OS side apply to
      improve performance for several workloads where ganesha is
      concerned. (And they don&#39;t seem to be necessary for gluster-nfs at
      all).<br>
      <br>
      Adding Manoj here, who may be able to point you to these
      configurables  (as he has experimented with the ganesha
      performance).<br>
      <br>
      Thanks,<br>
      Anand<br>
      <br>
      On 08/13/2015 07:13 PM, Niels de Vos wrote:<br>
    </div>
    <blockquote type="cite">
      <pre>On Mon, Aug 10, 2015 at 09:19:25AM +0100, Thibault Godouet wrote:
</pre>
      <blockquote type="cite">
        <pre>Thanks Niel for your helpful answer.

Regarding the locking, indeed that solves my issue. Now I&#39;m wondering how
to monitor this. The best I have so far is get the list of RPC binds and
the TCP/UDP port in particular, and then run a lsof to find out if it is
Gluster.  Should work, but a bit indirect. If someone knows a better way
I&#39;d be interested to know.
</pre>
      </blockquote>
      <pre>
That is almost how I do it as well. Instead of &#39;lsof&#39; I use &#39;netstat&#39; or
&#39;ss&#39;, depending on the Linux distribution.

</pre>
      <blockquote type="cite">
        <pre>As for Ganesha, I saw articles explaining that it effectively removes
layers, hence why I thought NFS v3 via Ganesha would be faster than native
Gluster NFS.  Given your answer I take it there are other moving parts /
differences.  Is there a general known guideline on which is best when?
E.g. does one handle better small files than the other one or something
like that?
</pre>
      </blockquote>
      <pre>
I am not aware of any guidelines for this. The difference in performance
is highly dependent on the workload and use-case. There is little
difference in the layers between Gluster/NFS and NFS-Ganesha, both are
userspace nfs-server implementations (neither has context switches for
the Linux-VFS like fuse mounts have).

If you need the best performance, you should problaby just try both
configurations, and run your intended workload against the servers.
Artificial/standard tests most often do not emulate a real workload.

HTH,
Niels


</pre>
      <blockquote type="cite">
        <pre>On 5 Aug 2015 7:06 pm, &quot;Niels de Vos&quot; <a href="mailto:ndevos@redhat.com" target="_blank">&lt;ndevos@redhat.com&gt;</a> wrote:

</pre>
        <blockquote type="cite">
          <pre>On Wed, Aug 05, 2015 at 04:11:47PM +0100, Thibault Godouet wrote:
</pre>
          <blockquote type="cite">
            <pre>Looking around I get the impression that file locking (NLM) may simply
</pre>
          </blockquote>
          <pre>not
</pre>
          <blockquote type="cite">
            <pre>be supported in glusterfs&#39;s built-in NFS server.
</pre>
          </blockquote>
          <pre>
This is actually supported. But note that you can not run a userspace
NLM implementation provided by a NFS-server (Gluster/NFS or NFS-Ganesha)
on a system that acts as an NFS-client. The Linux kernel NFS-client uses
the lockd kernel module, and there can be only one NLM implementation be
registered at rpcbind. Whichever service (nfs-client or nfs-server)
starts first, will be able to register itself, the 2nd one will (mostly
silently) fail.

</pre>
          <blockquote type="cite">
            <pre>I get the impression that Ganesha is aimed at supporting NFS better, and
presumably supports locking well, so I should give it a try (If I
understand well the performance is also likely to be higher, which is a
nice bonus!)
</pre>
          </blockquote>
          <pre>
NFS-Ganesha offers more features than Gluster/NFS. The performance is
highly dependent on the workload, Gluster/NFS can be faster for many of
them.

Cheers,
Niels


</pre>
          <blockquote type="cite">
            <pre>
If someone could confirm this that would be useful to make sure I&#39;m going
in the right direction.

Thanks,
Thibault.
On 4 Aug 2015 1:23 pm, &quot;Thibault Godouet&quot; <a href="mailto:tibo92@godouet.net" target="_blank">&lt;tibo92@godouet.net&gt;</a> wrote:

</pre>
            <blockquote type="cite">
              <pre>Hi,



I have a cluster of 2 servers running 3.7.3 with replication, and
</pre>
            </blockquote>
          </blockquote>
          <pre>standard
</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre>NFS (no ganesha).  This in on CentOS 6.

I use CTDB with 2 virtual IPs (one for each server in a normal
situation) to share the volume over NFS and CIFS (samba).



fnctl() file locking doesn&#39;t seem to work when the volume is mounted
</pre>
            </blockquote>
          </blockquote>
          <pre>over
</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre>NFS.

This is apparent with a &#39;svn info&#39; (svn 1.8 if it made any difference)
</pre>
            </blockquote>
          </blockquote>
          <pre>in
</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre>a local working copy:



$ svn info
svn: E200033: Another process is blocking the working copy database, or
the underlying filesystem does not support file locking; if the working
copy is on a network filesystem, make sure file locking has been
</pre>
            </blockquote>
          </blockquote>
          <pre>enabled on
</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre>the file server
svn: E200033: sqlite[S5]: database is locked, executing statement
</pre>
            </blockquote>
          </blockquote>
          <pre>&#39;PRAGMA
</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre>synchronous=OFF;PRAGMA recursive_triggers=ON;PRAGMA
</pre>
            </blockquote>
          </blockquote>
          <pre>foreign_keys=OFF;PRAGMA
</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre>locking_mode = NORMAL;&#39;



a strace shows:



$ svn info
svn: E200033: Another process is blocking the working copy database, or
the underlying filesystem does not support file locking; if the working
copy is on a network filesystem, make sure file locking has been
</pre>
            </blockquote>
          </blockquote>
          <pre>enabled on
</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre>the file server
svn: E200033: sqlite[S5]: database is locked, executing statement
</pre>
            </blockquote>
          </blockquote>
          <pre>&#39;PRAGMA
</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre>synchronous=OFF;PRAGMA recursive_triggers=ON;PRAGMA
</pre>
            </blockquote>
          </blockquote>
          <pre>foreign_keys=OFF;PRAGMA
</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre>locking_mode = NORMAL;&#39;



Everything seems to work fine on native Gluster (FUSE) mounts: the same
&#39;svn info&#39; works nicely.

I can&#39;t really use native mounts due to the performance hit (many small
files) and the fact I would need to install the gluster client
</pre>
            </blockquote>
          </blockquote>
          <pre>software on
</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre>every server.



Is fnctl() file locking supported in Gluster NFS mounts?  If so, any
</pre>
            </blockquote>
          </blockquote>
          <pre>idea
</pre>
          <blockquote type="cite">
            <blockquote type="cite">
              <pre>why it doesn&#39;t work for me?



Thanks,

Thibault.

</pre>
            </blockquote>
          </blockquote>
          <pre>
</pre>
          <blockquote type="cite">
            <pre>_______________________________________________
Gluster-users mailing list
<a href="mailto:Gluster-users@gluster.org" target="_blank">Gluster-users@gluster.org</a>
<a href="http://www.gluster.org/mailman/listinfo/gluster-users" target="_blank">http://www.gluster.org/mailman/listinfo/gluster-users</a>
</pre>
          </blockquote>
          <pre>

</pre>
          <br>
          <fieldset></fieldset>
          <br>
          <pre>_______________________________________________
Gluster-users mailing list
<a href="mailto:Gluster-users@gluster.org" target="_blank">Gluster-users@gluster.org</a>
<a href="http://www.gluster.org/mailman/listinfo/gluster-users" target="_blank">http://www.gluster.org/mailman/listinfo/gluster-users</a></pre>
        </blockquote>
      </blockquote>
    </blockquote>
    <br>
  </div>

</blockquote></div>