mogilefs usage and performance
anatolia at gmail.com
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