On Thu, Feb 26, 2009 at 04:10:17PM +0100, infernix ([email protected])
wrote:
> > Cold cache issues with this test are related to the stat(2) performance
> > on the server. It takes about 30-35 seconds to stat all objects in the
> > linux kernel source tree, and this stat is performed for directory
> > reading to get information about the object.
> > NFS does not have this basically because its server is in the kernel and
> > it should not copy a not-that-small chunk of the data from kernel to the
> > userspace.
>
> I see. Is there any other way besides running fserver in kernel space to
> get access to this? Perhaps just a small (optional) kernel module for
> the fserver process that would give POHMELFS the same advantage?
>
> > Test with the stat will show the same issues for the NFS and POHMELFS,
> > namely cold cache run will take about 1m8sec for POHMELFS and about
> > 33-35 seconds for NFS, since POHMELFS will do two stats - on the server
> > and client, while NFS will do it on the client only (its in-kernel
> > server has access to the data directly). Hot cache run will show the
> > same 33-35 seconds both for POHMELFS and NFS, since there will be only
> > single stat on the client.
>
> So from what I gather, when i start fserver, then mount it on the
> client, then start the find - the cache needs to get populated on both
> client and server. Following that logic - a commandline option to
> pre-populate the cache for fserver would help, assuming that the stat(2)
> performance penalty on a fresh client is NULL or close to zero?
>
> Its less ideal than the first option, but as long as fserver retains the
> cache throughout its process lifetime, this could be an acceptable
> solution as an optional feature at fserver startup.
There is no other option than having in-kernel server - server side
relies on the linux VFS to perform a stat, which is always slow, no
matter if cache is populated or not. So it is a matter of doing a stat -
if we have it, directory reading will be slow, which is a price of
getting metadata earlier; if we do not have a stat (and have some kind
of kernel module or extended readdir interface) - it will be fast.
--
Evgeniy Polyakov
_______________________________________________
Pohmelfs mailing list
[email protected]
http://www.ioremap.net/cgi-bin/mailman/listinfo/pohmelfs