Re: FW: Performance with Gluster+Fuse is 60x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dan,

 

Thank you for the response.

 

The Gluster is only access by the application and in the startup of the application time, I see a huge difference.

I you see the statistics, you see that the application is writing a 2184 small files.

You point me in the direction of the cache options. Do you have an explanation for the cache, why it would take 120min instead of 2min to start the application ?

 

 

 

 

Block Size:                  1b+                  16b+                  32b+

No. of Reads:                    0                     0                     0

No. of Writes:                  342                    25                   575

 

   Block Size:                 64b+                 128b+                 256b+

No. of Reads:                    0                     0                     0

No. of Writes:                  143                   898                   118

 

   Block Size:                512b+                1024b+                2048b+

No. of Reads:                    1                     4                    11

No. of Writes:                   82                     0                     0

 

   Block Size:               4096b+                8192b+               16384b+

No. of Reads:                   11                    31                    39

No. of Writes:                    0                     0                     0

 

   Block Size:              32768b+               65536b+              131072b+

No. of Reads:                   59                   148                   555

No. of Writes:                    0                     0                     0

 

 

 

 

 

 

 

 

 

Vriendelijke groeten,
Cordialement,
Best regards,

Stijn Van Renterghem

 

 

 

Message: 10

Date: Thu, 18 Feb 2016 10:14:59 +1000

From: Dan Mons <dmons@xxxxxxxxxxxxxxxxxx>

To: Stefan Jakobs <stefan@xxxxxxxxxxxxx>

Cc: gluster-users <gluster-users@xxxxxxxxxxx>

Subject: Re: FW: Performance with Gluster+Fuse is 60x

              slower then Gluster+NFS ?

Message-ID:

<CACa6Tydras9yd8=VmGE1hXzhKJVa6ipVat10Ee3pfr=GjTUbOA@xxxxxxxxxxxxxx>

Content-Type: text/plain; charset=UTF-8

 

Without knowing the details, I'm putting my money on cache.

 

Choosing how to mount Gluster is workload dependent.  If you're doing

a lot of small files with single threaded writes, I suggest NFS.  Your

client's nfscache will dramatically improve performance from the

end-user's point of view.

 

If you're doing heavy multi-threaded reads and writes, and you have

very good bandwidth from your client (e.g.: 10GbE) FUSE+GlusterFS is

better, as it allows your client to talk to all Gluster nodes.

 

If you are using FUSE+GlusterFS, on the gluster nodes themselves,

experiment with the "performance.write-behind-window-size" and

"performance.cache-size" options.  Note that these will affect the

cache used by the clients, so don't set them so high as to exhaust the

RAM of any client connecting (or, for low-memory clients, use NFS

instead).

 

Gluster ships with conservative defaults for cache, which is a good

thing.  It's up to the user to tweak for their optimal needs.

 

There's no right or wrong answer here.  Experiment with NFS and

various cache allocations with FUSE+GlusterFS, and see how you go.

And again, consider your workloads, and whether or not they're taking

full advantage of the FUSE client's ability to deal with highly

parallel workloads.

 

-Dan

----------------

Dan Mons - VFX Sysadmin

Cutting Edge

http://cuttingedge.com.au

 

 

 

 

 

 

 

 

From: Van Renterghem Stijn
Sent: Wednesday, February 17, 2016 4:20 PM
To: 'gluster-users@xxxxxxxxxxx' <gluster-users@xxxxxxxxxxx>
Subject: Performance with Gluster+Fuse is 60x slower then Gluster+NFS ?

 

Hi,

 

I have setup a server with a new installation of Gluster.

The volume type is ‘Replicate’.

 

1)

I mounted the volume with Fuse

IP1:/app       /srv/data               glusterfs       defaults,_netdev,backupvolfile-server=IP2,fetch-attempts=2      0 0

 

When I start my application, it takes 2h until the application is started

Below you can see the stats after the application is started. I can see a very high LOOKUP value.

Can you explain this high value ? The volume type is replicate, so I should think, I shouldn’t have LOOKUPs ?

 

Interval2

Block Size:                  1b+                  16b+                  32b+

No. of Reads:                    0                     0                     0

No. of Writes:                  342                    25                   575

 

   Block Size:                 64b+                 128b+                 256b+

No. of Reads:                    0                     0                     0

No. of Writes:                  143                   898                   118

 

   Block Size:                512b+                1024b+                2048b+

No. of Reads:                    1                     4                    11

No. of Writes:                   82                     0                     0

 

   Block Size:               4096b+                8192b+               16384b+

No. of Reads:                   11                    31                    39

No. of Writes:                    0                     0                     0

 

   Block Size:              32768b+               65536b+              131072b+

No. of Reads:                   59                   148                   555

No. of Writes:                    0                     0                     0

 

%-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls         Fop

---------   -----------   -----------   -----------   ------------        ----

      0.00       0.00 us       0.00 us       0.00 us              1      FORGET

      0.00       0.00 us       0.00 us       0.00 us            201     RELEASE

      0.00       0.00 us       0.00 us       0.00 us          54549  RELEASEDIR

      0.00      47.00 us      47.00 us      47.00 us              1 REMOVEXATTR

      0.00      94.00 us      74.00 us     114.00 us              2     XATTROP

      0.00     191.00 us     191.00 us     191.00 us              1    TRUNCATE

      0.00      53.50 us      35.00 us      74.00 us              4      STATFS

      0.00      79.67 us      70.00 us      91.00 us              3      RENAME

      0.00      37.33 us      27.00 us      68.00 us             15     INODELK

      0.00     190.67 us     116.00 us     252.00 us              3      UNLINK

      0.00      28.83 us       8.00 us      99.00 us             30     ENTRYLK

      0.00     146.33 us     117.00 us     188.00 us              6      CREATE

      0.00      37.63 us      12.00 us      73.00 us             84     READDIR

      0.00      23.75 us       8.00 us      75.00 us            198       FLUSH

      0.00      65.33 us      42.00 us     141.00 us            204        OPEN

      0.01      45.78 us      11.00 us     191.00 us            944    FINODELK

      0.01      80.34 us      31.00 us     211.00 us            859        READ

      0.02      96.74 us      50.00 us     188.00 us            944    FXATTROP

      0.02      55.84 us      24.00 us     140.00 us           1707       FSTAT

      0.02      52.89 us      21.00 us     175.00 us           2183       WRITE

      0.02      59.69 us      11.00 us     235.00 us           2312    GETXATTR

      0.03      51.18 us       8.00 us     142.00 us           3091        STAT

      0.46      48.66 us       1.00 us     179.00 us          54549     OPENDIR

      1.13     135.93 us      18.00 us   16362.00 us          48124    READDIRP

     98.29      70.46 us      16.00 us    2903.00 us        8104385      LOOKUP

 

    Duration: 7560 seconds

   Data Read: 91208567 bytes = 91MB

Data Written: 292007 bytes = 0,292MB

 

 

 

2)

I have tried some tuning options, but that didn’t changed anything:

 

#gluster volume info app

 

Volume Name: app

Type: Replicate

Volume ID: f1b59aec-adf8-41f8-ad95-839ace247041

Status: Started

Number of Bricks: 1 x 2 = 2

Transport-type: tcp

Bricks:

Brick1: IP1:/exports/app/app

Brick2: IP2:/exports/app/app

Options Reconfigured:

cluster.readdir-optimize: on

server.event-threads: 8

client.event-threads: 8

cluster.lookup-optimize: on

diagnostics.count-fop-hits: on

diagnostics.latency-measurement: on

auth.allow: client1,client2

nfs.rpc-auth-allow: client1,client2

nfs.export-volumes: on

nfs.addr-namelookup: off

nfs.disable: off

performance.readdir-ahead: on

performance.io-thread-count: 64

 

 

 

 

3)

I then have enabled NFS support.

I stopped the application and unmounted the volume. I then mounted it again with nfs:

IP1:/app        /srv/data               nfs             rsize=4096,wsize=4096,hard,intr  0 0

 

I started the application again and it was running within 3minutes.

The stats with NFS where very different then with Fuse. It seems that they are almost not logged.

 

Interval 11 Stats:

   Block Size:                128b+                 256b+                 512b+

No. of Reads:                    0                     0                     0

No. of Writes:                    9                     1                     1

 

   Block Size:               1024b+                2048b+                4096b+

No. of Reads:                    0                     0                     0

No. of Writes:                    1                     5                     8

 

%-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls         Fop

---------   -----------   -----------   -----------   ------------        ----

      0.00       0.00 us       0.00 us       0.00 us              2     RELEASE

      0.00       0.00 us       0.00 us       0.00 us              1  RELEASEDIR

      0.02       2.00 us       2.00 us       2.00 us              1     OPENDIR

      0.57      34.00 us      19.00 us      49.00 us              2     READDIR

      0.81      96.00 us      96.00 us      96.00 us              1     SETATTR

      1.06      62.50 us      61.00 us      64.00 us              2        OPEN

      1.39     164.00 us     164.00 us     164.00 us              1    TRUNCATE

      1.39      41.25 us      30.00 us      52.00 us              4    GETXATTR

      1.54      91.00 us      86.00 us      96.00 us              2     XATTROP

      2.72      80.50 us      29.00 us     122.00 us              4      LOOKUP

      2.81      33.30 us      17.00 us      56.00 us             10     INODELK

     10.36      76.69 us      26.00 us     133.00 us             16       FLUSH

     15.83      75.00 us      61.00 us     105.00 us             25       WRITE

     17.22      48.55 us      13.00 us      78.00 us             42    FINODELK

     44.28     124.83 us      62.00 us     161.00 us             42    FXATTROP

 

    Duration: 580 seconds

   Data Read: 0 bytes

Data Written: 60839 bytes

 

 

 

What is wrong with the Fuse client ?

Why does my application start in 120min with Gluster+Fuse and in 3min with Gluster+NFS ?

 

 

 

 

 

Regards,

Stijn

 

 

_______________________________________________
Gluster-users mailing list
Gluster-users@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-users

[Index of Archives]     [Gluster Development]     [Linux Filesytems Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux