Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 May 2003 17:23:41 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Kirk McKusick <mckusick@beastie.mckusick.com>
Cc:        Jens Schweikhardt <schweikh@FreeBSD.org>
Subject:   Re: Access times on executables (kern/25777) 
Message-ID:  <20030509162725.N80145@gamplex.bde.org>
In-Reply-To: <200305081818.h48IItTh026354@beastie.mckusick.com>
References:  <200305081818.h48IItTh026354@beastie.mckusick.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 8 May 2003, Kirk McKusick wrote:

> Since most filesystems are not mounted with -async, I am curious
> how the numbers change when you run them normally (ufs with soft
> updates and NFS client/server just normally) since that is what
> folks are likely to really do.

I wasn't very careful about this because it shouldn't matter since
timestamps are always written with delayed writes in at least the
non-soft updates case.  Soft updates is not normal for me so I didn't
have any file systems configured with it.  My nfs server file system
was actually mounted -noasync.  I thought that this didn't matter
either since the nfs case was broken.  However ...

> Also, does option 1 actually result
> in access times being set on NFS, or are the times rejected because
> the binaries are not owned by the user?

... Yes; they were under my home directory and I owned them all.
method 1 seems to work perfectly in this case.  tcpdump shows a nfs
setattr request and reply for every transaction.  The ping times to
the server is 230 usec (100 Mbps ethernet), but the overhead isn't
anywhere near that much, at least for doing back to back execs of the
same file, since there is some magic (buffering of coalescing of
transactions?): for 10000 execs without atime updates, tcpdump shows
10000 access transactions and no setattr transactions; with atime
updates, it shows 10000 setattr transactions and only 6 or 7 access
transactions.

> ...
> Raw output:
>
> %%%
> ufs-static-noexec
>         4.32 real         0.04 user         4.13 sys
>         4.23 real         0.07 user         4.01 sys
>         4.30 real         0.06 user         4.10 sys
> ufs-static-static
>     method -1
>         7.02 real         0.06 user         6.77 sys
>         7.10 real         0.07 user         6.83 sys
>         7.09 real         0.06 user         6.83 sys
>...
>     method 1
>         7.72 real         0.23 user         7.29 sys
>         7.76 real         0.25 user         7.31 sys
>         7.71 real         0.30 user         7.21 sys
>...
>     method 2
>         7.83 real         0.07 user         7.56 sys
>         7.84 real         0.27 user         7.37 sys
>         7.82 real         0.28 user         7.34 sys
>     method 3
>         7.90 real         0.26 user         7.43 sys
>         7.89 real         0.05 user         7.62 sys
>         7.92 real         0.05 user         7.66 sys
>...

Some more times with -noasync (but not soft updates).  The configuration
has changed a little with larger effects than I can explain, so I repeated
some tests with -async too.

%%%
ufs-static-noexec
        4.29 real         0.22 user         3.93 sys
        4.26 real         0.23 user         3.88 sys
        4.25 real         0.18 user         3.93 sys
ufs-static-static
    method -1
        7.74 real         0.11 user         7.41 sys
        7.70 real         0.18 user         7.29 sys
        7.69 real         0.08 user         7.39 sys
    method 1/async
        8.38 real         0.29 user         7.85 sys
        8.34 real         0.11 user         8.00 sys
        8.38 real         0.10 user         8.04 sys
    method 1/noasync
        8.32 real         0.29 user         7.80 sys
        8.36 real         0.26 user         7.86 sys
        8.37 real         0.32 user         7.80 sys
    method 2/async
        8.45 real         0.36 user         7.85 sys
        8.49 real         0.28 user         7.97 sys
        8.44 real         0.29 user         7.91 sys
    method 2/noasync
        8.51 real         0.19 user         8.07 sys
        8.44 real         0.06 user         8.13 sys
        8.47 real         0.08 user         8.15 sys
    method 3/async
        8.52 real         0.30 user         7.98 sys
        8.53 real         0.30 user         7.99 sys
        8.51 real         0.28 user         7.98 sys
    method 3/noasync
        8.43 real         0.27 user         7.92 sys
        8.44 real         0.23 user         7.96 sys
        8.49 real         0.08 user         8.16 sys
%%%

Bruce



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