Date: Fri, 24 Mar 2006 19:49:41 +1100 From: Peter Jeremy <peterjeremy@optushome.com.au> To: Matthew Dillon <dillon@apollo.backplane.com> Cc: alc@freebsd.org, Mikhail Teterin <mi+mx@aldan.algebra.com>, stable@freebsd.org Subject: Re: Reading via mmap stinks (Re: weird bugs with mmap-ing via NFS) Message-ID: <20060324084940.GA703@turion.vk2pj.dyndns.org> In-Reply-To: <200603232316.k2NNGBka068754@apollo.backplane.com> References: <200603211607.30372.mi%2Bmx@aldan.algebra.com> <200603231403.36136.mi%2Bmx@aldan.algebra.com> <200603232048.k2NKm4QL067644@apollo.backplane.com> <200603231626.19102.mi%2Bmx@aldan.algebra.com> <200603232316.k2NNGBka068754@apollo.backplane.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 2006-Mar-23 15:16:11 -0800, Matthew Dillon wrote:
> FreeBSD. To determine which of the two is more likely, you have to
> run a smaller data set (like 600MB of data on a system with 1GB of ram),
> and use the unmount/mount trick to clear the cache before each grep test.
On an amd64 system running about 6-week old -stable, both behave
pretty much identically. In both cases, systat reports that the disk
is about 96% busy whilst loading the cache. In the cache case, mmap
is significantly faster.
The test data is 2 copies of OOo_2.0.2rc2_src.tar.gz concatenated.
turion% ls -l /6_i386/var/tmp/test
-rw-r--r-- 1 peter wheel 586333684 Mar 24 19:24 /6_i386/var/tmp/test
turion% /usr/bin/time -l grep dfhfhdsfhjdsfl /6_i386/var/tmp/test
21.69 real 0.16 user 0.68 sys
1064 maximum resident set size
82 average shared memory size
95 average unshared data size
138 average unshared stack size
119 page reclaims
0 page faults
0 swaps
4499 block input operations
0 block output operations
0 messages sent
0 messages received
0 signals received
4497 voluntary context switches
3962 involuntary context switches
[umount/remount /6_i386/var]
turion% /usr/bin/time -l grep --mmap dfhfhdsfhjdsfl /6_i386/var/tmp/test
21.68 real 0.41 user 0.51 sys
1068 maximum resident set size
80 average shared memory size
93 average unshared data size
136 average unshared stack size
17836 page reclaims
18081 page faults
0 swaps
23 block input operations
0 block output operations
0 messages sent
0 messages received
0 signals received
18105 voluntary context switches
169 involuntary context switches
The speed gain with mmap is clearly evident when the data is cached and
the CPU clock wound right down (99MHz ISO 2200MHz):
turion% /usr/bin/time grep --mmap dfhfhdsfhjdsfl /6_i386/var/tmp/test
12.15 real 7.98 user 2.95 sys
turion% /usr/bin/time grep --mmap dfhfhdsfhjdsfl /6_i386/var/tmp/test
12.28 real 7.92 user 2.94 sys
turion% /usr/bin/time grep --mmap dfhfhdsfhjdsfl /6_i386/var/tmp/test
13.16 real 8.03 user 2.89 sys
turion% /usr/bin/time grep dfhfhdsfhjdsfl /6_i386/var/tmp/test
17.09 real 6.37 user 8.92 sys
turion% /usr/bin/time grep dfhfhdsfhjdsfl /6_i386/var/tmp/test
17.36 real 6.35 user 9.37 sys
turion% /usr/bin/time grep dfhfhdsfhjdsfl /6_i386/var/tmp/test
17.54 real 6.37 user 9.39 sys
--
Peter Jeremy
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060324084940.GA703>
