Need help with optimizing GlusterFS for Apache

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

 



On 10/18/2011 01:14 PM, Joe Landman wrote:
>
> On 10/18/2011 06:14 AM, Robert Krig wrote:
>
>> I think I'm going to have to abandon GlusterFS for our Image files. The
>> performance is abysmal. I've tried all sorts of settings, but at some
>> point the http process just keeps spawning more and more processess
>> because clients are waiting because the directory can't be read, since
>> glusterfs is busy.
>> We're not even reaching 500 apache requests per second and already
>> apache locks up.
>>
>> I'm pretty sure it can't be the hardware, since we're talking about a 12
>> Core Hyperthreading Xeon CPU, with 48GB of ram and 30TB of storage in a
>> hardware Raid.
>
> From our experience, and please don't take this incorrectly, the vast
> majority of storage users (and for that matter, storage companies)
> don't know how to design their RAIDs to their needs.  A "fast" CPU (12
> core Xeon would be X5650 or higher) won't impact small file read speed
> all that much.  48 GB of ram could, if you can cache enough of your
> small files.
>
> What you need, for your small random file read, is an SSD or Flash
> cache.  It has to be large enough that its relevant for your use case.
> I am not sure what your working set size is for your images, but you
> can buy them from small 300GB units through several 10s of TB.  Small
> random file performance is extremely good, and you can put gluster
> atop it as a file system if you wish to run the images off the cache
> ... or you can use it as a block level cache, which you then need to
> warm up prior to inital use (and then adjust after changes).
>
>> I realise that GlusterFS is not ideal for many small files, but this is
>> beyond ridiculous. It certainly doesn't help that the documentation
>> doesn't even properly explain how to activate different translators, or
>> where exactly to edit them by hand in the config files.
>>
>> If anyone has any suggestions, I'd be happy to hear them.
>
> See above.  As noted, most people (and companies) do anywhere from a
> bad to terrible job on storage system design.  No one should be using
> a large RAID5 or RAID6 for small random file reads.  Its simply the
> wrong design.  I am guessing its unlikely that you have a RAID10, but
> even with that, you are going to be rate limited by the number of
> drives you have and their about 100 IOP rates.
>
> This particular problem isn't likely Gluster's fault.  It is likely
> your storage design.  I'd suggest doing a quick test using fio to
> ascertain how many random read IOPs you can get out of your file
> system.  If you want to handle 500 apache requests per second, how
> many IOPs does this imply (how many files does each request require to
> fulfill)?  Chances are that you exceed the IOP capacity of your
> storage by several times.
>
> Your best bet is either a caching system, or putting the small
> randomly accessed image files on SSD or Flash, and using that.  Try
> that before you abandon Gluster.
>
>
>


Our storage consists of video files, ranging anywhere from 20-100
megabytes. The majority of our storage consists of videos, and only a
fraction of it is images. However, the images get read the most.

I agree with you on the raid thing, but in this scenario it was
important to have a maximum of safe storage.
Our previous systems are in fact identical, except a little slower, but
same hardware. Only difference being, no use of GlusterFS. We use a
rsync script which gets called whenever a user uploads a file, which
syncs the corresponding files to the storage mirror.

The overall IO under load on our old system is rarely above 8 megabytes
per second. And it handles the load without even breaking a sweat.

But I've come up with a workaround for our problem. Simply use the
gluster export directory as read only for the images.
Uploads are few and far between, and those can be handled separately,
90% of the time, files just need to be read. It's only during uploads
that files need to be written and replicated.




[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