Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Aug 2011 16:00:45 -0700
From:      Kirk McKusick <mckusick@mckusick.com>
To:        lev@FreeBSD.org
Cc:        freebsd-fs@FreeBSD.org
Subject:   Re: Very inconsistent (read) speed on UFS2 
Message-ID:  <201108302300.p7UN0jJ6022811@chez.mckusick.com>
In-Reply-To: <1693072185.20110831022933@serebryakov.spb.ru> 

next in thread | previous in thread | raw e-mail | index | archive | help
> Date: Wed, 31 Aug 2011 02:29:33 +0400
> From: Lev Serebryakov <lev@FreeBSD.org>
> To: Kirk McKusick <mckusick@mckusick.com>, freebsd-fs@FreeBSD.org
> Subject: Re: Very inconsistent (read) speed on UFS2
> 
> Hello, Kirk.
> 
> >   I'll try this experiment with mmap() and touching every 4096-th byte of
> > mapped memory instead of read(2).
> 
>   Strange enough, it gives only 40-50MiB/s and results are very
>  consistent.
> 
>   It really surprise me. I didn't think, that there will be so much
> difference, I was sure, that it will be almost equivalent speed.
> 
> --
> // Black Lion AKA Lev Serebryakov <lev@FreeBSD.org>

I had not realized that you were using O_DIRECT. That would in fact
avoid most of the caching / memory-recovery effects that I was blaming
earlier. Your test above is definitely hitting them though. My guess
is that the consistency is because you are measuring the rate at which
free memory can be created.

So, my new theory on why your O_DIRECT test is running slowly is due
to the single threading in the GEOM layer. Pawel Jakub Dawidek (pjd@)
gave a very interesting talk on this problem at this year's BSDCan.

	Kirk McKusick



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201108302300.p7UN0jJ6022811>