This is due to the NFS read caching. Use io-cache to have the equivalent of the functionality in glusterfs enabled. Avati On Wed, Apr 1, 2009 at 6:31 PM, Greg <greg at easyflirt.com> wrote: > Hi, > > I have a production setup, with clients that are both NFS and GlusterFS > clients. I've made a _very_ quick benchmark (repeated ten times), to compare > read performance between local hardrives, a NFS mount and a GlusterFS mount. > - a 17k file : > cache_c21f969b5f03d33d43e04f8f136e7682_c57d91c82f2ed2e96c13765e33fcd5ae > - a 50M file : users0.new.spi > - /nfs is a NFS mounted point, server with SATA drives > - /gluster is a GlusterFS mounted point, 2x servers with SAS drives > > php-14:~# for f in > /var/www/www/cache/cache_c/cache_cf/cache_cfb/cache_c21f969b5f03d33d43e04f8f136e7682_c57d91c82f2ed2e96c13765e33fcd5ae > /nfs/tmp/cache_c21f969b5f03d33d43e04f8f136e7682_c57d91c82f2ed2e96c13765e33fcd5ae > /tmp/cache_c21f969b5f03d33d43e04f8f136e7682_c57d91c82f2ed2e96c13765e33fcd5ae > /gluster/sphinx/users0.new.spi /nfs/tmp/users0.new.spi /tmp/users0.new.spi; > do echo $f; time cat $f >/dev/null; done > /var/www/www/cache/cache_c/cache_cf/cache_cfb/cache_c21f969b5f03d33d43e04f8f136e7682_c57d91c82f2ed2e96c13765e33fcd5ae > > real ? ?0m0.011s > user ? ?0m0.000s > sys ? ? 0m0.000s > /nfs/tmp/cache_c21f969b5f03d33d43e04f8f136e7682_c57d91c82f2ed2e96c13765e33fcd5ae > > real ? ?0m0.002s > user ? ?0m0.000s > sys ? ? 0m0.000s > /tmp/cache_c21f969b5f03d33d43e04f8f136e7682_c57d91c82f2ed2e96c13765e33fcd5ae > > real ? ?0m0.001s > user ? ?0m0.000s > sys ? ? 0m0.000s > /gluster/sphinx/users0.new.spi > > real ? ?0m0.081s > user ? ?0m0.000s > sys ? ? 0m0.068s > /nfs/tmp/users0.new.spi > > real ? ?0m0.037s > user ? ?0m0.000s > sys ? ? 0m0.036s > /tmp/users0.new.spi > > real ? ?0m0.028s > user ? ?0m0.000s > sys ? ? 0m0.028s > > > Configuration: > # file: /etc/glusterfs/glusterfsd.vol > > # > # Volumes > # > volume media-small > ? ? ? type storage/posix > ? ? ? option directory /var/local/glusterfs/media_small > end-volume > > volume media-medium > ? ? ? type storage/posix > ? ? ? option directory /var/local/glusterfs/media_medium > end-volume > > # Lock posix > volume media-small-locks > ?type features/posix-locks > ?option mandatory-locks on > ?subvolumes media-small > # subvolumes trash # enable this if you need trash can support (NOTE: not > present in 1.3.0-pre5+ releases) > end-volume > > volume media-medium-locks > ?type features/posix-locks > ?option mandatory-locks on > ?subvolumes media-medium > # subvolumes trash # enable this if you need trash can support (NOTE: not > present in 1.3.0-pre5+ releases) > end-volume > > > # > # Performance > # > volume media-small-iot > type performance/io-threads > subvolumes media-small-locks > option thread-count 4 # default value is 1 > end-volume > > volume media-small-wb > type performance/write-behind > option flush-behind on # default is off > subvolumes media-small-iot > end-volume > > volume media-medium-iot > type performance/io-threads > subvolumes media-medium-locks > option thread-count 4 # default value is 1 > end-volume > > volume media-medium-wb > type performance/write-behind > option flush-behind on # default is off > subvolumes media-medium-iot > end-volume > > > > # > # Serveur > # > volume server > ? ? ? type protocol/server > ? ? ? option transport-type tcp/server > ? ? ? option auth.addr.media-small-wb.allow 10.0.*.* > ? ? ? option auth.addr.media-medium-wb.allow 10.0.*.* > ? ? ? # Autoconfiguration, e.g. : > ? ? ? # glusterfs -l /tmp/glusterfs.log --server=filer-04 ./Cache > ? ? ? option client-volume-filename /etc/glusterfs/glusterfs.vol > ? ? ? subvolumes media-small-wb media-medium-wb # volumes export?s > end-volume > > # file: /etc/glusterfs/glusterfs.vol > > > # > # Clients > # > volume media-small-filer-04 > ? ? ? type protocol/client > ? ? ? option transport-type tcp/client > ? ? ? option remote-host filer-04.local > ? ? ? option remote-subvolume media-small-wb > end-volume > > volume media-small-filer-05 > ? ? ? type protocol/client > ? ? ? option transport-type tcp/client > ? ? ? option remote-host filer-05.local > ? ? ? option remote-subvolume media-small-wb > end-volume > > volume media-medium-filer-04 > ? ? ? type protocol/client > ? ? ? option transport-type tcp/client > ? ? ? option remote-host filer-04.local > ? ? ? option remote-subvolume media-medium-wb > end-volume > > volume media-medium-filer-05 > ? ? ? type protocol/client > ? ? ? option transport-type tcp/client > ? ? ? option remote-host filer-05.local > ? ? ? option remote-subvolume media-medium-wb > end-volume > > > # > # Volume principal > # > volume afr-small > ? ? ? # AFR has been renamed to "Replicate" for simplicity. > ? ? ? type cluster/replicate > ? ? ? # Il faut mettre le serveur avec le moins d'espace disque en 1er : > ? ? ? # "When doing a "df -h" on a client, the AVAILABLE disk space will > display the maximum disk space of the first AFR sub volume defined in the > spec file. So if you have two servers with 50 gigs and 100 gigs of free disk > space, and the server with 100 gigs is listed first, then you will see 100 > gigs available even though one server only has 50 gigs free. " > ? ? ? subvolumes media-small-filer-04 media-small-filer-05 > end-volume > > volume afr-medium > ? ? ? # AFR has been renamed to "Replicate" for simplicity. > ? ? ? type cluster/replicate > ? ? ? subvolumes media-medium-filer-04 media-medium-filer-05 > end-volume > > # > # Performance > # > volume iot-small > ? ? ? type performance/io-threads > ? ? ? subvolumes afr-small > end-volume > > volume readahead-small > ? ? ? type performance/read-ahead > ? ? ? subvolumes iot-small > ? ? ? option page-size 1MB ? ? ? ? # default is 256KB > ? ? ? option page-count 4 ? ? ? ? ?# default is 2 - cache per file = > (page-count x page-size) > ? ? ? option force-atime-update no # defalut is 'no' > end-volume > > volume iocache-small > ? ? ? type performance/io-cache > ? ? ? option cache-size 64MB ? ? ? ? ?# default is 32MB > ? ? ? option page-size 256KB ? ? ? ? ?# default is 128KB > ? ? ? subvolumes readahead-small > end-volume > > volume writeback-small > ? ? ? type performance/write-behind > ? ? ? option block-size 1MB # max 4MB > ? ? ? option flush-behind on # default is off > ? ? ? subvolumes iocache-small > end-volume > > volume iot-medium > ? ? ? type performance/io-threads > ? ? ? subvolumes afr-medium > end-volume > > volume readahead-medium > ? ? ? type performance/read-ahead > ? ? ? subvolumes iot-medium > ? ? ? option page-size 1MB ? ? ? ? # default is 256KB > ? ? ? option page-count 4 ? ? ? ? ?# default is 2 - cache per file = > (page-count x page-size) > ? ? ? option force-atime-update no # defalut is 'no' > end-volume > > volume iocache-medium > ? ? ? type performance/io-cache > ? ? ? option cache-size 64MB ? ? ? ? ?# default is 32MB > ? ? ? option page-size 256KB ? ? ? ? ?# default is 128KB > ? ? ? option page-count 2 > ? ? ? subvolumes readahead-medium > end-volume > > volume writeback-medium > ? ? ? type performance/write-behind > ? ? ? option block-size 1MB # max 4MB > ? ? ? option flush-behind on # default is off > ? ? ? subvolumes iocache-medium > end-volume > > Regards, > > -- > Greg > > > _______________________________________________ > Gluster-users mailing list > Gluster-users at gluster.org > http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users >