Just to clarify a little, there are two cases where I was evaluating performance.

1) The first case that Pranith was working involved 20-nodes with 4-processors on each node for a total of 80-processors. Each processor does its own independent i/o. These files are roughly 100-200MB each and there are several hundred of them. When I mounted the gluster system using fuse, it took 1.5-hours to do the i/o. When I mounted the same system using NFS, it took 30-minutes. Note, that in order to get the gluster mounted file-system down to 1.5-hours, I had to get rid of the replicated volume (this was done during troubleshooting with Pranith to rule out other possible issues). The timing was significantly worse (3+ hours) when I was using a replicated pair. 2) The second case was the output of a larger single file (roughly 2.5TB). For this case, it takes the gluster mounted filesystem 60-seconds (although I got that down to 52-seconds with some gluster parameter tuning). The NFS mount takes 38-seconds. I sent the results of this to the developer list first as this case is much easier to test (50-seconds versus what could be 3+ hours).

I am head out of town for a few days and will not be able to do additional testing until Monday. For the second case, I will turn off cluster.eager-lock and send the results to the email list. If there is any other testing that you would like to see for the first case, let me know and I will be happy to perform the tests and send in the results...

Sorry for the confusion...

David


------ Original Message ------
From: "Pranith Kumar Karampuri" <pkara...@redhat.com>
To: "Anand Avati" <av...@gluster.org>
Cc: "David F. Robinson" <david.robin...@corvidtec.com>; "Gluster Devel" <gluster-devel@gluster.org>
Sent: 8/6/2014 9:51:11 PM
Subject: Re: [Gluster-devel] Fw: Re: Corvid gluster testing


On 08/07/2014 07:18 AM, Anand Avati wrote:
It would be worth checking the perf numbers without -o acl (in case it was enabled, as seen in the other gid thread). Client side -o acl mount option can have a negative impact on performance because of the increased number of up-calls from FUSE for access().
Actually it is all write intensive.
here are the numbers they gave me from earlier runs:
%-latency Avg-latency Min-Latency Max-Latency No. of calls Fop --------- ----------- ----------- ----------- ------------ ---- 0.00 0.00 us 0.00 us 0.00 us 99 FORGET 0.00 0.00 us 0.00 us 0.00 us 1093 RELEASE 0.00 0.00 us 0.00 us 0.00 us 468 RELEASEDIR 0.00 60.00 us 26.00 us 107.00 us 4 SETATTR 0.00 91.56 us 42.00 us 157.00 us 27 UNLINK 0.00 20.75 us 12.00 us 55.00 us 132 GETXATTR 0.00 19.03 us 9.00 us 95.00 us 152 READLINK 0.00 43.19 us 12.00 us 106.00 us 83 OPEN 0.00 18.37 us 8.00 us 92.00 us 257 STATFS 0.00 32.42 us 11.00 us 118.00 us 322 OPENDIR 0.00 36.09 us 5.00 us 109.00 us 359 FSTAT 0.00 51.14 us 37.00 us 183.00 us 663 RENAME 0.00 33.32 us 6.00 us 123.00 us 1451 STAT 0.00 821.79 us 21.00 us 22678.00 us 84 READ 0.00 34.88 us 3.00 us 139.00 us 2326 FLUSH 0.01 789.33 us 72.00 us 64054.00 us 347 CREATE 0.01 1144.63 us 43.00 us 280735.00 us 337 FTRUNCATE 0.01 47.82 us 16.00 us 19817.00 us 16513 LOOKUP 0.02 604.85 us 11.00 us 1233.00 us 1423 READDIRP 99.95 17.51 us 6.00 us 212701.00 us 300715967 WRITE

    Duration: 5390 seconds
   Data Read: 1495257497 bytes
Data Written: 166546887668 bytes

Pranith

Thanks


On Wed, Aug 6, 2014 at 6:26 PM, Pranith Kumar Karampuri <pkara...@redhat.com> wrote:

On 08/07/2014 06:48 AM, Anand Avati wrote:



On Wed, Aug 6, 2014 at 6:05 PM, Pranith Kumar Karampuri <pkara...@redhat.com> wrote:
We checked this performance with plain distribute as well and on nfs it gave 25 minutes where as on nfs it gave around 90 minutes after disabling throttling in both situations.

This sentence is very confusing. Can you please state it more clearly?
sorry :-D.
We checked this performance on plain distribute volume by disabling throttling.
On nfs the run took 25 minutes.
On fuse the run took 90 minutes.

Pranith


Thanks


I was wondering if any of you guys know what could contribute to this difference.

Pranith

On 08/07/2014 01:33 AM, Anand Avati wrote:
Seems like heavy FINODELK contention. As a diagnostic step, can you try disabling eager-locking and check the write performance again (gluster volume set $name cluster.eager-lock off)?


On Tue, Aug 5, 2014 at 11:44 AM, David F. Robinson <david.robin...@corvidtec.com> wrote:
Forgot to attach profile info in previous email.  Attached...

David


------ Original Message ------
From: "David F. Robinson" <david.robin...@corvidtec.com>
To: gluster-devel@gluster.org
Sent: 8/5/2014 2:41:34 PM
Subject: Fw: Re: Corvid gluster testing

I have been testing some of the fixes that Pranith incorporated into the 3.5.2-beta to see how they performed for moderate levels of i/o. All of the stability issues that I had seen in previous versions seem to have been fixed in 3.5.2; however, there still seem to be some significant performance issues. Pranith suggested that I send this to the gluster-devel email list, so here goes:

I am running an MPI job that saves a restart file to the gluster file system. When I use the following in my fstab to mount the gluster volume, the i/o time for the 2.5GB file is roughly 45-seconds.

gfsib01a.corvidtec.com:/homegfs /homegfs glusterfs transport=tcp,_netdev 0 0 When I switch this to use the NFS protocol (see below), the i/o time is 2.5-seconds.

gfsib01a.corvidtec.com:/homegfs /homegfs nfs vers=3,intr,bg,rsize=32768,wsize=32768 0 0

The read-times for gluster are 10-20% faster than NFS, but the write times are almost 20x slower.

I am running SL 6.4 and glusterfs-3.5.2-0.1.beta1.el6.x86_64...

[root@gfs01a glusterfs]# gluster volume info homegfs
Volume Name: homegfs
Type: Distributed-Replicate
Volume ID: 1e32672a-f1b7-4b58-ba94-58c085e59071
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: gfsib01a.corvidtec.com:/data/brick01a/homegfs
Brick2: gfsib01b.corvidtec.com:/data/brick01b/homegfs
Brick3: gfsib01a.corvidtec.com:/data/brick02a/homegfs
Brick4: gfsib01b.corvidtec.com:/data/brick02b/homegfs

David

------ Forwarded Message ------
From: "Pranith Kumar Karampuri" <pkara...@redhat.com>
To: "David Robinson" <david.robin...@corvidtec.com>
Cc: "Young Thomas" <tom.yo...@corvidtec.com>
Sent: 8/5/2014 2:25:38 AM
Subject: Re: Corvid gluster testing

gluster-devel@gluster.org is the email-id for the mailing list. We should probably start with the initial run numbers and the comparison for glusterfs mount and nfs mounts. May be something like

glusterfs mount: 90 minutes
nfs mount: 25 minutes

And profile outputs, volume config, number of mounts, hardware configuration should be a good start.

Pranith

On 08/05/2014 09:28 AM, David Robinson wrote:
Thanks pranith


===============================
David F. Robinson, Ph.D.
President - Corvid Technologies
704.799.6944 x101 [office]
704.252.1310 [cell]
704.799.7974 [fax]
david.robin...@corvidtec.com
http://www.corvidtechnologies.com/

On Aug 4, 2014, at 11:22 PM, Pranith Kumar Karampuri <pkara...@redhat.com> wrote:


On 08/05/2014 08:33 AM, Pranith Kumar Karampuri wrote:

On 08/05/2014 08:29 AM, David F. Robinson wrote:
On 08/05/2014 12:51 AM, David F. Robinson wrote:
No. I don't want to use nfs. It eliminates most of the benefits of why I want to use gluster. Failover redundancy of the pair, load balancing, etc.
What is the meaning of 'Failover redundancy of the pair, load balancing ' Could you elaborate more? smb/nfs/glusterfs are just access protocols that gluster supports functionality is almost same
Here is my understanding. Please correct me where I am wrong.

With gluster, if I am doing a write and one of the replicated pairs goes down, there is no interruption to the I/o. The failover is handled by gluster and the fuse client. This isn't done if I use an nfs mount unless the component of the pair that goes down isn't the one I used for the mount.

With nfs, I will have to mount one of the bricks. So, if I have gfs01a, gfs01b, gfs02a, gfs02b, gfs03a, gfs03b, etc and my fstab mounts gfs01a, it is my understanding that all of my I/o will go through gfs01a which then gets distributed to all of the other bricks. Gfs01a throughput becomes a bottleneck. Where if I do a gluster mount using fuse, the load balancing is handled at the client side , not the server side. If I have 1000-nodes accessing 20-gluster bricks, I need the load balancing aspect. I cannot have all traffic going through the network interface on a single brick.

If I am wrong with the above assumptions, I guess my question is why would one ever use the gluster mount instead of nfs and/or samba?

Tom: feel free to chime in if I have missed anything.
I see your point now. Yes the gluster server where you did the mount is kind of a bottle neck.
Now that we established the problem is in the clients/protocols, you should send out a detailed mail on gluster-devel and see if anyone can help with you on performance xlators that can improve it a bit more. My area of expertise is more on replication. I am sub-maintainer for replication,locks components. I also know connection management/io-threads related issues which lead to hangs as I worked on them before. Performance xlators are black box to me.

Performance xlators are enabled only on fuse gluster stack. On nfs server mounts we disable all the performance xlators except write-behind as nfs client does lots of things for improving performance. I suggest you guys follow up more on gluster-devel.

Appreciate all the help you did for improving the product :-). Thanks a ton!
Pranith
Pranith
David (Sent from mobile)

===============================
David F. Robinson, Ph.D.
President - Corvid Technologies
704.799.6944 x101 [office]
704.252.1310 [cell]
704.799.7974 [fax]
david.robin...@corvidtec.com
http://www.corvidtechnologies.com/


_______________________________________________
Gluster-devel mailing list
Gluster-devel@gluster.org
http://supercolony.gluster.org/mailman/listinfo/gluster-devel




_______________________________________________ Gluster-devel mailing list Gluster-devel@gluster.orghttp://supercolony.gluster.org/mailman/listinfo/gluster-devel




_______________________________________________
Gluster-devel mailing list
Gluster-devel@gluster.org
http://supercolony.gluster.org/mailman/listinfo/gluster-devel

Reply via email to