mogilefs usage and performance

Anatoli Stoyanovski anatolia at
Mon Aug 14 05:23:01 UTC 2006

> > So, I want to ask - what's the optimal environment for these tasks,
> > where I need to read many small files very quickly and want to use
> > replicating file system mogilefs? As I understand, I can scale
> > trackers, mysql, setup more storage servers, but the minimum time for
> > 50 files is 0.4 seconds.
> There are a few things you can do.  Try both of these suggestions in
> your test and then see how it performs.  I bet you can get your requests
> per second number much higher.
> 1) Make sure you're using Perlbal::XS::HTTPHeaders.  Link:
> This is an XS module that replaces the header parsing system built into
> Perlbal, which is written in Perl.  This has saved us 40% CPU usage on
> Perlbal, making the whole thing much faster.

Yes, it's now 290req/sec in perlbal->mod_perl->memcached->perlbal
configuration! (250 before)

> 2) Switch from using mogstored to using lighttpd/Apache for serving the
> files on the mogstored.
> On LiveJournal, we have so many reads, we don't use mogstored (Perlbal in
> disguise) to do them.  Instead, we're running Apache configured to serve
> files out of /var/mogdata.
> This is possible by setting the http_get_port for the host, which
> specifies that all GET requests should go to a different port.  You can
> then put your alternative software there.
> You still want to run mogstored to create the usage files, which is how
> the tracker keeps tabs on disk space.

Wow! We use 'nginx' software as very fast http daemon for serving static files.
It's performance about 10 000 req/sec (1 170 for perlbal).

Now the total speed is 348 req/sec with memcached and 250 req/sec without it

Thank you for good hints, Smith!

More information about the mogilefs mailing list