Subject: observations on a large-memory system.
To: None <tech-kern@netbsd.org>
From: Bill Sommerfeld <sommerfeld@netbsd.org>
List: tech-kern
Date: 06/08/2001 10:45:54
The following is with -current..

1) ubc needs many vnodes to effectively use physmem for vnode page
cache.  For the NetBSD source tree, you need roughly 67000 vnodes to
cache roughly 670k of data.

A 2G system autoconfigures with roughly 40000 vnodes, where the above
ratio suggests that somewhere around 200000 vnodes might be a more
appropriate size.

2) atime updates throttle hot-cache read performance:

(this is after boosting kern.maxvnodes to 80000, followed by several
"tar cvf /dev/null /usr/src" runs to get all of /usr/src into UBC
cache)

# mount -u -o noatime /usr
# tar cf /dev/null /usr/src
tar: Removing leading / from absolute path names in the archive.
# time tar cf /dev/null /usr/src 
tar: Removing leading / from absolute path names in the archive.
tar cf /dev/null /usr/src  0.67s user 9.79s system 99% cpu 10.525 total
# mount -u -o atime /usr 
# time tar cf /dev/null /usr/src
tar: Removing leading / from absolute path names in the archive.
tar cf /dev/null /usr/src  0.73s user 11.60s system 17% cpu 1:09.91 total
# mount -u -o noatime /usr        
# time tar cf /dev/null /usr/src
tar: Removing leading / from absolute path names in the archive.
tar cf /dev/null /usr/src  0.73s user 10.31s system 51% cpu 21.363 total
# time tar cf /dev/null /usr/src
tar: Removing leading / from absolute path names in the archive.
tar cf /dev/null /usr/src  0.78s user 9.65s system 99% cpu 10.528 total

					- Bill