Re: [Gluster-users] FW: Performance with Gluster+Fuse is 60x slower then Gluster+NFS ?

2016-02-18 Thread Stephan von Krawczynski
On Thu, 18 Feb 2016 10:14:59 +1000
Dan Mons  wrote:

> Without knowing the details, I'm putting my money on cache.
> 
> Choosing how to mount Gluster is workload dependent.  If you're doing
> a lot of small files with single threaded writes, I suggest NFS.  Your
> client's nfscache will dramatically improve performance from the
> end-user's point of view.
> 
> If you're doing heavy multi-threaded reads and writes, and you have
> very good bandwidth from your client (e.g.: 10GbE) FUSE+GlusterFS is
> better, as it allows your client to talk to all Gluster nodes.
> [...]

Dan, forgive my jump in this matter which is obvious to everyone using
glusterfs for years: fuse+glusterfs is simply sh*t talking of performance.
There is absolutely nobody whose setup wouldn't be at least two (to several
hundred) times faster using simple NFS. So Stefans numbers are no surprise.
I really cannot believe you are trying to argue for fuse. It is completely
clear that fuse is only used because of the incompetence to write a
kernel-space driver (and this was said years ago by the people who originally
wrote the whole lot). You probably can find this answer to my question in the
archives of this (or the devel) list years back. And because of this I pretty
much stopped writing here, I mean you cannot blame someone for not being
skilled enough to produce the right code in a GPL situation.
The basic concept is good, the implementation is just a mess. And that's it.

Regards,
Stephan

 
> If you are using FUSE+GlusterFS, on the gluster nodes themselves,
> experiment with the "performance.write-behind-window-size" and
> "performance.cache-size" options.  Note that these will affect the
> cache used by the clients, so don't set them so high as to exhaust the
> RAM of any client connecting (or, for low-memory clients, use NFS
> instead).
> 
> Gluster ships with conservative defaults for cache, which is a good
> thing.  It's up to the user to tweak for their optimal needs.
> 
> There's no right or wrong answer here.  Experiment with NFS and
> various cache allocations with FUSE+GlusterFS, and see how you go.
> And again, consider your workloads, and whether or not they're taking
> full advantage of the FUSE client's ability to deal with highly
> parallel workloads.
> 
> -Dan
> 
> Dan Mons - VFX Sysadmin
> Cutting Edge
> http://cuttingedge.com.au
> 
> 
> On 18 February 2016 at 08:56, Stefan Jakobs  wrote:
> > Van Renterghem Stijn:
> >> Interval2
> >> Block Size:  1b+  16b+  
> >> 32b+
> >> No. of Reads:0 0
> >>  0 No. of Writes:  34225
> >>575
> >>
> >>Block Size: 64b+ 128b+
> >> 256b+ No. of Reads:0 0
> >>0 No. of Writes:  143   898
> >>  118
> >>
> >>Block Size:512b+1024b+
> >> 2048b+ No. of Reads:1 4
> >>11 No. of Writes:   82 0
> >> 0
> >>
> >>Block Size:   4096b+8192b+
> >> 16384b+ No. of Reads:   1131
> >> 39 No. of Writes:0 0
> >>  0
> >>
> >>Block Size:  32768b+   65536b+
> >> 131072b+ No. of Reads:   59   148
> >> 555 No. of Writes:0 0
> >>   0
> >>
> >> %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls
> >> Fop -   ---   ---   ---   
> >>    0.00   0.00 us   0.00 us   0.00 us  1
> >> FORGET 0.00   0.00 us   0.00 us   0.00 us201
> >> RELEASE 0.00   0.00 us   0.00 us   0.00 us  54549
> >> RELEASEDIR 0.00  47.00 us  47.00 us  47.00 us  1
> >> REMOVEXATTR 0.00  94.00 us  74.00 us 114.00 us  2
> >>   XATTROP 0.00 191.00 us 191.00 us 191.00 us  1
> >> TRUNCATE 0.00  53.50 us  35.00 us  74.00 us  4
> >> STATFS 0.00  79.67 us  70.00 us  91.00 us  3
> >> RENAME 0.00  37.33 us  27.00 us  68.00 us 15
> >> INODELK 0.00 190.67 us 116.00 us 252.00 us  3
> >> UNLINK 0.00  28.83 us   8.00 us  99.00 us 30
> >> ENTRYLK 0.00 146.33 us 117.00 us 188.00 us  6
> >> CREATE 0.00  37.63 us  12.00 us  73.00 us 84
> >> READDIR 0.00  23.75 us   8.00 us  75.00 us198
> >> FLUSH 0.00  65.33 us  42.00 us 141.00 us204
> >> OPEN 0.01  45.78 us  11.00 us 191.00 us944
> >> FINODELK 0.01  8

Re: [Gluster-users] FW: Performance with Gluster+Fuse is 60x slower then Gluster+NFS ?

2016-02-17 Thread Dan Mons
Without knowing the details, I'm putting my money on cache.

Choosing how to mount Gluster is workload dependent.  If you're doing
a lot of small files with single threaded writes, I suggest NFS.  Your
client's nfscache will dramatically improve performance from the
end-user's point of view.

If you're doing heavy multi-threaded reads and writes, and you have
very good bandwidth from your client (e.g.: 10GbE) FUSE+GlusterFS is
better, as it allows your client to talk to all Gluster nodes.

If you are using FUSE+GlusterFS, on the gluster nodes themselves,
experiment with the "performance.write-behind-window-size" and
"performance.cache-size" options.  Note that these will affect the
cache used by the clients, so don't set them so high as to exhaust the
RAM of any client connecting (or, for low-memory clients, use NFS
instead).

Gluster ships with conservative defaults for cache, which is a good
thing.  It's up to the user to tweak for their optimal needs.

There's no right or wrong answer here.  Experiment with NFS and
various cache allocations with FUSE+GlusterFS, and see how you go.
And again, consider your workloads, and whether or not they're taking
full advantage of the FUSE client's ability to deal with highly
parallel workloads.

-Dan

Dan Mons - VFX Sysadmin
Cutting Edge
http://cuttingedge.com.au


On 18 February 2016 at 08:56, Stefan Jakobs  wrote:
> Van Renterghem Stijn:
>> Interval2
>> Block Size:  1b+  16b+  32b+
>> No. of Reads:0 0
>>  0 No. of Writes:  34225
>>575
>>
>>Block Size: 64b+ 128b+
>> 256b+ No. of Reads:0 0
>>0 No. of Writes:  143   898
>>  118
>>
>>Block Size:512b+1024b+
>> 2048b+ No. of Reads:1 4
>>11 No. of Writes:   82 0
>> 0
>>
>>Block Size:   4096b+8192b+
>> 16384b+ No. of Reads:   1131
>> 39 No. of Writes:0 0
>>  0
>>
>>Block Size:  32768b+   65536b+
>> 131072b+ No. of Reads:   59   148
>> 555 No. of Writes:0 0
>>   0
>>
>> %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls
>> Fop -   ---   ---   ---   
>>    0.00   0.00 us   0.00 us   0.00 us  1
>> FORGET 0.00   0.00 us   0.00 us   0.00 us201
>> RELEASE 0.00   0.00 us   0.00 us   0.00 us  54549
>> RELEASEDIR 0.00  47.00 us  47.00 us  47.00 us  1
>> REMOVEXATTR 0.00  94.00 us  74.00 us 114.00 us  2
>>   XATTROP 0.00 191.00 us 191.00 us 191.00 us  1
>> TRUNCATE 0.00  53.50 us  35.00 us  74.00 us  4
>> STATFS 0.00  79.67 us  70.00 us  91.00 us  3
>> RENAME 0.00  37.33 us  27.00 us  68.00 us 15
>> INODELK 0.00 190.67 us 116.00 us 252.00 us  3
>> UNLINK 0.00  28.83 us   8.00 us  99.00 us 30
>> ENTRYLK 0.00 146.33 us 117.00 us 188.00 us  6
>> CREATE 0.00  37.63 us  12.00 us  73.00 us 84
>> READDIR 0.00  23.75 us   8.00 us  75.00 us198
>> FLUSH 0.00  65.33 us  42.00 us 141.00 us204
>> OPEN 0.01  45.78 us  11.00 us 191.00 us944
>> FINODELK 0.01  80.34 us  31.00 us 211.00 us859
>>   READ 0.02  96.74 us  50.00 us 188.00 us944
>> FXATTROP 0.02  55.84 us  24.00 us 140.00 us   1707
>>  FSTAT 0.02  52.89 us  21.00 us 175.00 us   2183
>> WRITE 0.02  59.69 us  11.00 us 235.00 us   2312
>> GETXATTR 0.03  51.18 us   8.00 us 142.00 us   3091
>>   STAT 0.46  48.66 us   1.00 us 179.00 us  54549
>> OPENDIR 1.13 135.93 us  18.00 us   16362.00 us  48124
>> READDIRP 98.29  70.46 us  16.00 us2903.00 us8104385
>>  LOOKUP
>>
>> Duration: 7560 seconds
>>Data Read: 91208567 bytes = 91MB
>> Data Written: 292007 bytes = 0,292MB
>
> How did you collect these statistics?
>
> Thanks
> Stefan
> ___
> Gluster-users mailing list
> Gluster-users@gluster.org
> http://www.gluster.org/mailman/listinfo/gluster-users
___
Gluster-users mailing list
Gluster-users@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-use

Re: [Gluster-users] FW: Performance with Gluster+Fuse is 60x slower then Gluster+NFS ?

2016-02-17 Thread Stefan Jakobs
Van Renterghem Stijn:
> Interval2
> Block Size:  1b+  16b+  32b+
> No. of Reads:0 0   
>  0 No. of Writes:  34225   
>575
> 
>Block Size: 64b+ 128b+
> 256b+ No. of Reads:0 0 
>0 No. of Writes:  143   898 
>  118
> 
>Block Size:512b+1024b+   
> 2048b+ No. of Reads:1 4
>11 No. of Writes:   82 0
> 0
> 
>Block Size:   4096b+8192b+  
> 16384b+ No. of Reads:   1131   
> 39 No. of Writes:0 0   
>  0
> 
>Block Size:  32768b+   65536b+ 
> 131072b+ No. of Reads:   59   148  
> 555 No. of Writes:0 0  
>   0
> 
> %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls
> Fop -   ---   ---   ---    
>    0.00   0.00 us   0.00 us   0.00 us  1 
> FORGET 0.00   0.00 us   0.00 us   0.00 us201
> RELEASE 0.00   0.00 us   0.00 us   0.00 us  54549 
> RELEASEDIR 0.00  47.00 us  47.00 us  47.00 us  1
> REMOVEXATTR 0.00  94.00 us  74.00 us 114.00 us  2  
>   XATTROP 0.00 191.00 us 191.00 us 191.00 us  1   
> TRUNCATE 0.00  53.50 us  35.00 us  74.00 us  4 
> STATFS 0.00  79.67 us  70.00 us  91.00 us  3 
> RENAME 0.00  37.33 us  27.00 us  68.00 us 15
> INODELK 0.00 190.67 us 116.00 us 252.00 us  3 
> UNLINK 0.00  28.83 us   8.00 us  99.00 us 30
> ENTRYLK 0.00 146.33 us 117.00 us 188.00 us  6 
> CREATE 0.00  37.63 us  12.00 us  73.00 us 84
> READDIR 0.00  23.75 us   8.00 us  75.00 us198  
> FLUSH 0.00  65.33 us  42.00 us 141.00 us204   
> OPEN 0.01  45.78 us  11.00 us 191.00 us944   
> FINODELK 0.01  80.34 us  31.00 us 211.00 us859 
>   READ 0.02  96.74 us  50.00 us 188.00 us944   
> FXATTROP 0.02  55.84 us  24.00 us 140.00 us   1707 
>  FSTAT 0.02  52.89 us  21.00 us 175.00 us   2183  
> WRITE 0.02  59.69 us  11.00 us 235.00 us   2312   
> GETXATTR 0.03  51.18 us   8.00 us 142.00 us   3091 
>   STAT 0.46  48.66 us   1.00 us 179.00 us  54549
> OPENDIR 1.13 135.93 us  18.00 us   16362.00 us  48124   
> READDIRP 98.29  70.46 us  16.00 us2903.00 us8104385
>  LOOKUP
> 
> Duration: 7560 seconds
>Data Read: 91208567 bytes = 91MB
> Data Written: 292007 bytes = 0,292MB

How did you collect these statistics?

Thanks
Stefan
___
Gluster-users mailing list
Gluster-users@gluster.org
http://www.gluster.org/mailman/listinfo/gluster-users


[Gluster-users] FW: Performance with Gluster+Fuse is 60x slower then Gluster+NFS ?

2016-02-17 Thread Van Renterghem Stijn
Hi,

I have setup a server with a new installation of Gluster.
The volume type is 'Replicate'.

1)
I mounted the volume with Fuse
IP1:/app   /srv/data   glusterfs   
defaults,_netdev,backupvolfile-server=IP2,fetch-attempts=2  0 0

When I start my application, it takes 2h until the application is started
Below you can see the stats after the application is started. I can see a very 
high LOOKUP value.
Can you explain this high value ? The volume type is replicate, so I should 
think, I shouldn't have LOOKUPs ?

Interval2
Block Size:  1b+  16b+  32b+
No. of Reads:0 0 0
No. of Writes:  34225   575

   Block Size: 64b+ 128b+ 256b+
No. of Reads:0 0 0
No. of Writes:  143   898   118

   Block Size:512b+1024b+2048b+
No. of Reads:1 411
No. of Writes:   82 0 0

   Block Size:   4096b+8192b+   16384b+
No. of Reads:   113139
No. of Writes:0 0 0

   Block Size:  32768b+   65536b+  131072b+
No. of Reads:   59   148   555
No. of Writes:0 0 0

%-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls Fop
-   ---   ---   ---   
  0.00   0.00 us   0.00 us   0.00 us  1  FORGET
  0.00   0.00 us   0.00 us   0.00 us201 RELEASE
  0.00   0.00 us   0.00 us   0.00 us  54549  RELEASEDIR
  0.00  47.00 us  47.00 us  47.00 us  1 REMOVEXATTR
  0.00  94.00 us  74.00 us 114.00 us  2 XATTROP
  0.00 191.00 us 191.00 us 191.00 us  1TRUNCATE
  0.00  53.50 us  35.00 us  74.00 us  4  STATFS
  0.00  79.67 us  70.00 us  91.00 us  3  RENAME
  0.00  37.33 us  27.00 us  68.00 us 15 INODELK
  0.00 190.67 us 116.00 us 252.00 us  3  UNLINK
  0.00  28.83 us   8.00 us  99.00 us 30 ENTRYLK
  0.00 146.33 us 117.00 us 188.00 us  6  CREATE
  0.00  37.63 us  12.00 us  73.00 us 84 READDIR
  0.00  23.75 us   8.00 us  75.00 us198   FLUSH
  0.00  65.33 us  42.00 us 141.00 us204OPEN
  0.01  45.78 us  11.00 us 191.00 us944FINODELK
  0.01  80.34 us  31.00 us 211.00 us859READ
  0.02  96.74 us  50.00 us 188.00 us944FXATTROP
  0.02  55.84 us  24.00 us 140.00 us   1707   FSTAT
  0.02  52.89 us  21.00 us 175.00 us   2183   WRITE
  0.02  59.69 us  11.00 us 235.00 us   2312GETXATTR
  0.03  51.18 us   8.00 us 142.00 us   3091STAT
  0.46  48.66 us   1.00 us 179.00 us  54549 OPENDIR
  1.13 135.93 us  18.00 us   16362.00 us  48124READDIRP
 98.29  70.46 us  16.00 us2903.00 us8104385  LOOKUP

Duration: 7560 seconds
   Data Read: 91208567 bytes = 91MB
Data Written: 292007 bytes = 0,292MB



2)
I have tried some tuning options, but that didn't changed anything:

#gluster volume info app

Volume Name: app
Type: Replicate
Volume ID: f1b59aec-adf8-41f8-ad95-839ace247041
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: IP1:/exports/app/app
Brick2: IP2:/exports/app/app
Options Reconfigured:
cluster.readdir-optimize: on
server.event-threads: 8
client.event-threads: 8
cluster.lookup-optimize: on
diagnostics.count-fop-hits: on
diagnostics.latency-measurement: on
auth.allow: client1,client2
nfs.rpc-auth-allow: client1,client2
nfs.export-volumes: on
nfs.addr-namelookup: off
nfs.disable: off
performance.readdir-ahead: on
performance.io-thread-count: 64




3)
I then have enabled NFS support.
I stopped the application and unmounted the volume. I then mounted it again 
with nfs:
IP1:/app/srv/data   nfs 
rsize=4096,wsize=4096,hard,intr  0 0

I started the application again and it was running within 3minutes.
The st