[Gluster-users] Performance

Hiren Joshi josh at moonfruit.com
Wed Aug 12 17:24:19 UTC 2009


 

> -----Original Message-----
> From: Mark Mielke [mailto:mark at mark.mielke.cc] 
> Sent: 12 August 2009 16:35
> To: Hiren Joshi
> Cc: gluster-users at gluster.org
> Subject: Re: [Gluster-users] Performance
> 
> On 08/12/2009 11:24 AM, Hiren Joshi wrote:
> > Hello all,
> >
> > I have 2 servers both exporting 36 partitions. The client 
> mirrors the 36
> > partitions on each server and puts them all into a DHT.
> >
> > dd if=/dev/zero of=/home/webspace_glust/zeros bs=1024 count=1024000
> > Takes 8 minutes, compared to 30 seconds vi NFS, now granted 
> I'm using
> > mostly default settings but a transfer rate of 2.1Mb/s vs 
> about 40Mb/s
> > seems low.
> >
> > What am I doing wrong? Where should I start with the 
> performance tuning?
> 
> How about start with a 1:1 comparison? Unless is somehow doing 
> mirroring, you should remove the mirroring from your solution before 
> comparing.


Fair point, I've put on a single brick (no distribution no mirror) and I
get:
time dd if=/dev/zero of=/home/webspace_glust/zeros bs=1024 count=1024000
1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 109.289 seconds, 9.6 MB/s

real    1m49.291s
user    0m0.156s
sys     0m2.701s

Compared to:
time dd if=/dev/zero of=/home/webspace_nfs/josh/zeros bs=1024
count=1024000
1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 29.4801 seconds, 35.6 MB/s

real    0m29.526s
user    0m0.486s
sys     0m1.927s


For NFS.

> 
> Are you using striping? If you are not using striping, then the file 
> "/home/webspace_glust" is going to be assigned to a single partition, 
> and you would only be using a mirror of one partition.

No striping, thanks, I didn't consider this, so I tried:
time for x in `seq 1 1 1000`; do dd if=/dev/zero
of=/home/webspace_nfs/zeros$x bs=1024 count=1024; echo $x; done
real    0m45.292s
user    0m0.760s
sys     0m3.209s
(about 20-40MB/s)

and
time for x in `seq 1 1 1000`; do dd if=/dev/zero
of=/home/webspace_glust/zeros$x bs=1024 count=1024; echo $x; done
real    1m58.931s
user    0m0.432s
sys     0m6.412s
(about 8-10MB/s)

> 
> 36 partitions on each server - the word "partition" is ambiguous. Are 
> they 36 separate drives? Or multiple partitions on the same drive. If 
> multiple partitions on the same drive, this would be a bad 
> idea, as it 
> would require the disk head to move back and forth between the 
> partitions, significantly increasing the latency, and therefore 
> significantly reducing the performance. If each partition is 
> on its own 
> drive, you still won't see benefit unless you have many clients 
> concurrently changing many different files. In your above case, it's 
> touching a single file in sequence, and having a cluster is 
> costing you 
> rather than benefitting you.

We went with 36 partitions (on a single raid 6 drive) incase we got file
system corruption, it would take less time to fsck a 100G partition than
a 3.6TB one. Would a 3.6TB single disk be better?


> 
> As for the 2.1Mb/s vs 40Mb/s, I have no clue. I'm new to 
> Gluster myself, 
> and I have yet to install it on my node cluster (10 servers) 
> and perform 
> timing myself.
> 
> Cheers,
> mark
> 
> -- 
> Mark Mielke<mark at mielke.cc>
> 
> 



More information about the Gluster-users mailing list