[Gluster-users] Gluster samba vfs read performance slow

Anand Avati avati at redhat.com
Wed Sep 18 05:38:14 UTC 2013


On 9/17/13 10:34 PM, kane wrote:
> Hi Anand,
> 
> I use 2 gluster server , this is my volume info:
> Volume Name: soul
> Type: Distribute
> Volume ID: 58f049d0-a38a-4ebe-94c0-086d492bdfa6
> Status: Started
> Number of Bricks: 2
> Transport-type: tcp
> Bricks:
> Brick1: 192.168.101.133:/dcsdata/d0
> Brick2: 192.168.101.134:/dcsdata/d0
> 
> each brick use a raid 5 logic disk with 8*2TSATA hdd.
> 
> smb.conf:
> [gvol]
>          comment = For samba export of volume  test
>          vfs objects = glusterfs
>          glusterfs:volfile_server = localhost
>          glusterfs:volume = soul
>          path = /
>          read only = no
>          guest ok = yes
> 
> this my testparm result:
> [global]
> workgroup = MYGROUP
> server string = DCS Samba Server
> log file = /var/log/samba/log.vfs
> max log size = 500000
> max xmit = 262144
> socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=262144 
> SO_SNDBUF=262144
> stat cache = No
> kernel oplocks = No
> idmap config * : backend = tdb
> aio read size = 262144
> aio write size = 262144
> aio write behind = true
> cups options = raw
> 
> in client mount the smb share with cifs to dir /mnt/vfs,
> then use iozone executed in the cifs mount dir "/mnt/vfs":
> $ ./iozone -s 10G -r 128k -i0 -i1 -t 4
> File size set to 10485760 KB
> Record Size 128 KB
> Command line used: ./iozone -s 10G -r 128k -i0 -i1 -t 4
> Output is in Kbytes/sec
> Time Resolution = 0.000001 seconds.
> Processor cache size set to 1024 Kbytes.
> Processor cache line size set to 32 bytes.
> File stride size set to 17 * record size.
> Throughput test with 4 processes
> Each process writes a 10485760 Kbyte file in 128 Kbyte records
> 
> Children see throughput for  4 initial writers =  534315.84 KB/sec
> Parent sees throughput for  4 initial writers =  519428.83 KB/sec
> Min throughput per process =  133154.69 KB/sec
> Max throughput per process =  134341.05 KB/sec
> Avg throughput per process =  133578.96 KB/sec
> Min xfer = 10391296.00 KB
> 
> Children see throughput for  4 rewriters =  536634.88 KB/sec
> Parent sees throughput for  4 rewriters =  522618.54 KB/sec
> Min throughput per process =  133408.80 KB/sec
> Max throughput per process =  134721.36 KB/sec
> Avg throughput per process =  134158.72 KB/sec
> Min xfer = 10384384.00 KB
> 
> Children see throughput for  4 readers =   77403.54 KB/sec
> Parent sees throughput for  4 readers =   77402.86 KB/sec
> Min throughput per process =   19349.42 KB/sec
> Max throughput per process =   19353.42 KB/sec
> Avg throughput per process =   19350.88 KB/sec
> Min xfer = 10483712.00 KB
> 
> Children see throughput for 4 re-readers =   77424.40 KB/sec
> Parent sees throughput for 4 re-readers =   77423.89 KB/sec
> Min throughput per process =   19354.75 KB/sec
> Max throughput per process =   19358.50 KB/sec
> Avg throughput per process =   19356.10 KB/sec
> Min xfer = 10483840.00 KB
> 
> then the use the same command test in the dir mounted with glister fuse:
> File size set to 10485760 KB
> Record Size 128 KB
> Command line used: ./iozone -s 10G -r 128k -i0 -i1 -t 4
> Output is in Kbytes/sec
> Time Resolution = 0.000001 seconds.
> Processor cache size set to 1024 Kbytes.
> Processor cache line size set to 32 bytes.
> File stride size set to 17 * record size.
> Throughput test with 4 processes
> Each process writes a 10485760 Kbyte file in 128 Kbyte records
> 
> Children see throughput for  4 initial writers =  887534.72 KB/sec
> Parent sees throughput for  4 initial writers =  848830.39 KB/sec
> Min throughput per process =  220140.91 KB/sec
> Max throughput per process =  223690.45 KB/sec
> Avg throughput per process =  221883.68 KB/sec
> Min xfer = 10319360.00 KB
> 
> Children see throughput for  4 rewriters =  892774.92 KB/sec
> Parent sees throughput for  4 rewriters =  871186.83 KB/sec
> Min throughput per process =  222326.44 KB/sec
> Max throughput per process =  223970.17 KB/sec
> Avg throughput per process =  223193.73 KB/sec
> Min xfer = 10431360.00 KB
> 
> Children see throughput for  4 readers =  605889.12 KB/sec
> Parent sees throughput for  4 readers =  601767.96 KB/sec
> Min throughput per process =  143133.14 KB/sec
> Max throughput per process =  159550.88 KB/sec
> Avg throughput per process =  151472.28 KB/sec
> Min xfer = 9406848.00 KB
> 
> it shows much higher perf.
> 
> any places i did wrong?
> 
> 
> thank you
> -Kane
> 
> 在 2013-9-18,下午1:19,Anand Avati <avati at gluster.org 
> <mailto:avati at gluster.org>> 写道:
> 
>> How are you testing this? What tool are you using?
>>
>> Avati
>>
>>
>> On Tue, Sep 17, 2013 at 9:02 PM, kane <stef_9k at 163.com 
>> <mailto:stef_9k at 163.com>> wrote:
>>
>>     Hi Vijay
>>
>>             I used the code in
>>     https://github.com/gluster/glusterfs.git with the lasted commit:
>>     commit de2a8d303311bd600cb93a775bc79a0edea1ee1a
>>     Author: Anand Avati <avati at redhat.com <mailto:avati at redhat.com>>
>>     Date:   Tue Sep 17 16:45:03 2013 -0700
>>
>>         Revert "cluster/distribute: Rebalance should also verify free
>>     inodes"
>>
>>         This reverts commit 215fea41a96479312a5ab8783c13b30ab9fe00fa
>>
>>         Realized soon after merging, ….
>>
>>     which include the patch you mentioned last time improve read perf,
>>     written by Anand.
>>
>>     but the read perf was still slow:
>>     write: 500MB/s
>>     read: 77MB/s
>>
>>     while via fuse :
>>     write 800MB/s
>>     read 600MB/s
>>
>>     any advises?
>>
>>
>>     Thank you.
>>     -Kane
>>
>>     在 2013-9-13,下午10:37,kane <stef_9k at 163.com
>>     <mailto:stef_9k at 163.com>> 写道:
>>
>>     > Hi Vijay,
>>     >
>>     >       thank you for post this message, i will try it soon
>>     >
>>     > -kane
>>     >
>>     >
>>     >
>>     > 在 2013-9-13,下午9:21,Vijay Bellur <vbellur at redhat.com
>>     <mailto:vbellur at redhat.com>> 写道:
>>     >
>>     >> On 09/13/2013 06:10 PM, kane wrote:
>>     >>> Hi
>>     >>>
>>     >>> We use gluster samba vfs test io,but the read performance via
>>     vfs is
>>     >>> half of write perfomance,
>>     >>> but via fuse the read and write performance is almost the same.
>>     >>>
>>     >>> this is our smb.conf:
>>     >>> [global]
>>     >>>        workgroup = MYGROUP
>>     >>>        server string = DCS Samba Server
>>     >>>        log file = /var/log/samba/log.vfs
>>     >>>        max log size = 500000
>>     >>> #       use sendfile = true
>>     >>>        aio read size = 262144
>>     >>>        aio write size = 262144
>>     >>>        aio write behind = true
>>     >>>        min receivefile size = 262144
>>     >>>        write cache size = 268435456
>>     >>>        security = user
>>     >>>        passdb backend = tdbsam
>>     >>>        load printers = yes
>>     >>>        cups options = raw
>>     >>>        read raw = yes
>>     >>>        write raw = yes
>>     >>>        max xmit = 262144
>>     >>>        socket options = TCP_NODELAY IPTOS_LOWDELAY
>>     SO_RCVBUF=262144
>>     >>> SO_SNDBUF=262144
>>     >>>        kernel oplocks = no
>>     >>>        stat cache = no
>>     >>>
>>     >>> any advises helpful?
>>     >>>
>>     >>
>>     >> This patch has shown improvement in read performance with libgfapi:
>>     >>
>>     >> http://review.gluster.org/#/c/5897/
>>     >>
>>     >> Would it be possible for you to try this patch and check if it
>>     improves performance in your case?
>>     >>
>>     >> -Vijay
>>     >>
>>     >
>>
>>
>>     _______________________________________________
>>     Gluster-users mailing list
>>     Gluster-users at gluster.org <mailto:Gluster-users at gluster.org>
>>     http://supercolony.gluster.org/mailman/listinfo/gluster-users
>>
>>
> 

Please add 'kernel oplocks = no' in the [gvol] section and try again.

Avati




More information about the Gluster-users mailing list