[Gluster-devel] How to enable FUSE kernel cache about dentry and inode?

Ravishankar N ravishankar at redhat.com
Tue Sep 6 07:12:53 UTC 2016

On 09/06/2016 12:27 PM, Keiviw wrote:
> Could you please tell me your glusterfs version and the mount command 
> that you have used?? My GlusterFS version is 3.3.0, different versions 
> may be exits different results.

I tried it on the master branch, on Fedora 22 virtual machines (kernel 
version: 4.1.6-200.fc22.x86_64 ). By the way 3.3 is a rather old 
version, you might want to use the latest 3.8.x release.

> At 2016-09-06 12:35:19, "Ravishankar N" <ravishankar at redhat.com> wrote:
>     That is strange. I tried the experiment on a volume with a million
>     files. The client node's memory usage did grow, as I observed from
>     the output of free(1) http://paste.fedoraproject.org/422551/ when
>     I did a `ls`.
>     -Ravi
>     On 09/02/2016 07:31 AM, Keiviw wrote:
>>     Exactly, I mounted the volume in a no-brick node(nodeB), and
>>     nodeA was the server. I have set different timeout, but when I
>>     excute "ls /mnt/glusterfs(about 3 million small files, in other
>>     words, about 3 million dentries)", the result was the same,
>>     memory usage in nodeB didn't change at all while nodeA's memory
>>     usage was changed about 4GB!
>>     发自 网易邮箱大师 <http://u.163.com/signature>
>>     On 09/02/2016 09:45, Ravishankar N
>>     <mailto:ravishankar at redhat.com> wrote:
>>         On 09/02/2016 05:42 AM, Keiviw wrote:
>>>         Even if I set the attribute-timeout and entry-timeout to
>>>         3600s(1h), in the nodeB, it didn't cache any metadata
>>>         because the memory usage didn't change. So I was confused
>>>         that why did the client not cache dentries and inodes.
>>         If you only want to test fuse's caching, I would try mounting
>>         the volume on a separate machine (not on the brick node
>>         itself), disable all gluster performance xlators, do a
>>         find.|xargs stat on the mount 2 times in succession and see
>>         what free(1) reports the 1st and 2nd time. You could do this
>>         experiment with various attr/entry timeout values. Make sure
>>         your volume has a lot of small files.
>>         -Ravi
>>>         在 2016-09-01 16:37:00,"Ravishankar N"
>>>         <ravishankar at redhat.com> 写道:
>>>             On 09/01/2016 01:04 PM, Keiviw wrote:
>>>>             Hi,
>>>>                 I have found that GlusterFS client(mounted by FUSE)
>>>>             didn't cache metadata like dentries and inodes. I have
>>>>             installed GlusterFS 3.6.0 in nodeA and nodeB, and the
>>>>             brick1 and brick2 was in nodeA, then in nodeB, I
>>>>             mounted the volume to /mnt/glusterfs by FUSE. From my
>>>>             test, I excuted 'ls /mnt/glusterfs' in nodeB, and found
>>>>             that the memory didn't use at all. Here are my questions:
>>>>                 1. In fuse kernel, the author set some attributes
>>>>             to control the time-out about dentry and inode, in
>>>>             other words, the fuse kernel supports metadata cache,
>>>>             but in my test, dentries and inodes were not cached. WHY?
>>>>                 2. Were there some options in GlusterFS mounted to
>>>>             local to enable the metadata cache in fuse kernel?
>>>             You can tweak the attribute-timeout and entry-timeout
>>>             seconds while mounting the volume. Default is 1 second
>>>             for both.  `man mount.glusterfs` lists various mount
>>>             options.
>>>             -Ravi
>>>>             _______________________________________________
>>>>             Gluster-devel mailing list
>>>>             Gluster-devel at gluster.org
>>>>             http://www.gluster.org/mailman/listinfo/gluster-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gluster.org/pipermail/gluster-devel/attachments/20160906/bd7cb9f9/attachment.html>

More information about the Gluster-devel mailing list