[Gluster-devel] write-behind tuning

Amar S. Tumballi amar at zresearch.com
Thu May 15 22:41:38 UTC 2008


On Wed, May 14, 2008 at 12:15 AM, Jordan Mendler <jmendler at ucla.edu> wrote:

> Hi all,
>
> I am in the process of implementing write-behind and had some questions.
>
> 1) I've been told aggregate-size should be between 0-4MB. What is the
> down-side to making it large? In our case (a backup server) I would think
> the bigger the better since we are doing lots of consecutive/parallel
> rsyncs
> of a combination of tons of small files and some very large files. The only
> down-side I could see is that small transfers are not distributed as evenly
> since large writes will be done to only 1 brick instead of half of the
> write
> to each brick. Perhaps someone can clarify.
>

Currently we have a upper limit in our protocol translator to transfer only
4MB of data at the max in one request/reply packet. Hence if you use
write-behind on client side (as in most of the cases), it will fail to send
the bigger packet.



>
> 2) What does flush-behind do? What is the advantage of having it on and
> what
> is the advantage of it off.
>
this option is given for increasing the performance of handling lot of small
files where, the close()/flush() can be pushed to back-ground, hence client
can process the next request. Its ''off'' by default.


>
> 3) write-behind on the client aggregates small writes into larger ones. Is
> there any purpose to doing it on the server side? If so, how is this
> helpful?
>
Yes, generally, it helps if the writes are coming in a very small chunk. It
helps to reduce the diskhead seek() time.


>
> 4) should write-behind be done on a brick-by-brick basis on the client, or
> is it fine to do it after the unify? (seems like it would be fine since
> this
> would consolidate small writes before sending it to the scheduler).
>

Yes, the behavior will be same where ever you put it. But its advised to do
it after unify as it reduces the complexity of the spec file.


> Hardware wise we currently have 2 16x1TB Hardware RAID6 servers (each is
> 8core, 8gb of RAM). Each acts as both a server and a unify client.
> Underlying filesystem is currently XFS on Linux, ~13TB each. Interconnect
> is
> GigE and eventually we will have more external clients, though for now we
> are just using the servers as clients. My current client config is below.
> Any other suggestions are also appreciated.
>

Spec file looks good.


Regards,
-- 
Amar Tumballi
Gluster/GlusterFS Hacker
[bulde on #gluster/irc.gnu.org]
http://www.zresearch.com - Commoditizing Super Storage!



More information about the Gluster-devel mailing list