[Gluster-users] Horrible performance with small files (DHT/AFR)

Benjamin Krein superbenk at superk.org
Tue Jun 2 16:25:10 UTC 2009


I do not see any difference with autoscaling removed.  Current server  
config:

# webform flat-file cache

volume webform_cache
    type storage/posix
    option directory /home/clusterfs/webform/cache
end-volume

volume webform_cache_locks
    type features/locks
    subvolumes webform_cache
end-volume

volume webform_cache_brick
    type performance/io-threads
    option thread-count 32
    subvolumes webform_cache_locks
end-volume

<<snip>>

# GlusterFS Server
volume server
    type protocol/server
    option transport-type tcp
    subvolumes dns_public_brick dns_private_brick webform_usage_brick  
webform_cache_brick wordpress_uploads_brick subs_exports_brick
    option auth.addr.dns_public_brick.allow 10.1.1.*
    option auth.addr.dns_private_brick.allow 10.1.1.*
    option auth.addr.webform_usage_brick.allow 10.1.1.*
    option auth.addr.webform_cache_brick.allow 10.1.1.*
    option auth.addr.wordpress_uploads_brick.allow 10.1.1.*
    option auth.addr.subs_exports_brick.allow 10.1.1.*
end-volume

# time cp -rp * /mnt/

real	70m13.672s
user	0m1.168s
sys	0m8.377s

NOTE: the above test was also done during peak hours when the LAN/dev  
server were in use which would cause some of the extra time.  This is  
still WAY too much, though.

Ben


On Jun 1, 2009, at 1:40 PM, Vijay Bellur wrote:

> Hi Benjamin,
>
> Could you please try by turning autoscaling off?
>
> Thanks,
> Vijay
>
> Benjamin Krein wrote:
>> I'm seeing extremely poor performance writing small files to a  
>> glusterfs DHT/AFR mount point. Here are the stats I'm seeing:
>>
>> * Number of files:
>> root at dev1|/home/aweber/cache|# find |wc -l
>> 102440
>>
>> * Average file size (bytes):
>> root at dev1|/home/aweber/cache|# ls -lR | awk '{sum += $5; n++;} END  
>> {print sum/n;}'
>> 4776.47
>>
>> * Using scp:
>> root at dev1|/home/aweber/cache|# time scp -rp * benk at cfs1:~/cache/
>>
>> real 1m38.726s
>> user 0m12.173s
>> sys 0m12.141s
>>
>> * Using cp to glusterfs mount point:
>> root at dev1|/home/aweber/cache|# time cp -rp * /mnt
>>
>> real 30m59.101s
>> user 0m1.296s
>> sys 0m5.820s
>>
>> Here is my configuration (currently, single client writing to 4  
>> servers (2 DHT servers doing AFR):
>>
>> SERVER:
>>
>> # webform flat-file cache
>>
>> volume webform_cache
>> type storage/posix
>> option directory /home/clusterfs/webform/cache
>> end-volume
>>
>> volume webform_cache_locks
>> type features/locks
>> subvolumes webform_cache
>> end-volume
>>
>> volume webform_cache_brick
>> type performance/io-threads
>> option thread-count 32
>> option max-threads 128
>> option autoscaling on
>> subvolumes webform_cache_locks
>> end-volume
>>
>> <<snip>>
>>
>> # GlusterFS Server
>> volume server
>> type protocol/server
>> option transport-type tcp
>> subvolumes dns_public_brick dns_private_brick webform_usage_brick  
>> webform_cache_brick wordpress_uploads_brick subs_exports_brick
>> option auth.addr.dns_public_brick.allow 10.1.1.*
>> option auth.addr.dns_private_brick.allow 10.1.1.*
>> option auth.addr.webform_usage_brick.allow 10.1.1.*
>> option auth.addr.webform_cache_brick.allow 10.1.1.*
>> option auth.addr.wordpress_uploads_brick.allow 10.1.1.*
>> option auth.addr.subs_exports_brick.allow 10.1.1.*
>> end-volume
>>
>> CLIENT:
>>
>> # Webform Flat-File Cache Volume client configuration
>>
>> volume srv1
>> type protocol/client
>> option transport-type tcp
>> option remote-host cfs1
>> option remote-subvolume webform_cache_brick
>> end-volume
>>
>> volume srv2
>> type protocol/client
>> option transport-type tcp
>> option remote-host cfs2
>> option remote-subvolume webform_cache_brick
>> end-volume
>>
>> volume srv3
>> type protocol/client
>> option transport-type tcp
>> option remote-host cfs3
>> option remote-subvolume webform_cache_brick
>> end-volume
>>
>> volume srv4
>> type protocol/client
>> option transport-type tcp
>> option remote-host cfs4
>> option remote-subvolume webform_cache_brick
>> end-volume
>>
>> volume afr1
>> type cluster/afr
>> subvolumes srv1 srv3
>> end-volume
>>
>> volume afr2
>> type cluster/afr
>> subvolumes srv2 srv4
>> end-volume
>>
>> volume dist
>> type cluster/distribute
>> subvolumes afr1 afr2
>> end-volume
>>
>> volume writebehind
>> type performance/write-behind
>> option cache-size 4mb
>> option flush-behind on
>> subvolumes dist
>> end-volume
>>
>> volume cache
>> type performance/io-cache
>> option cache-size 512mb
>> subvolumes writebehind
>> end-volume
>>
>> Benjamin Krein
>> www.superk.org
>>
>>
>>
>>
>> _______________________________________________
>> Gluster-users mailing list
>> Gluster-users at gluster.org
>> http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users
>>
>>
>









More information about the Gluster-users mailing list