Subject: install/31297: mounting volumes with -o async speeds up file write operations 500% (5 times)
To: None <,,>
From: None <>
List: netbsd-bugs
Date: 09/11/2005 23:30:00
>Number:         31297
>Category:       install
>Synopsis:       mounting volumes with -o async speeds up file write operations 500% (5 times)
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    install-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sun Sep 11 23:30:00 +0000 2005
>Originator:     Peter
>Release:        netbsd-1.6.1
INSTALL kernel (default 1.6.1 install disk), and all other known kernels
compiled under 1.6.1 i386. Hardware is 450MHz P3, disks are UDMA2 (cdrom 
and hdds). 
I noticed that using the mount option -o async for IDE/UDMA disks during
installation and all other large file unpacking operations (many files,
tar -x uncompressed archives, data size ~0.6G, UDMA2 disks), the time
required to unpack decreased 5-fold. In my case from 30 minutes to 6.

Using any other mount options did not bring such improvements (including
not softdep).

I think that all install disks should mount -o async since a crash during install would mean reinstalling anyway. This would mean using
-o async in all mounts done by sysinst.

The speedup does not depend on the machine, it was repeated with completely different hardware, with the exact same results. With -o
async at least 50% of the hardware speed is reached. Without it, it is
much slower. Testing was done with an uncompressed tar archive that
contained many relatively small files, such as a backup of a plain NetBSD installation.

Filesystem was ffs, default options set by sysinst)

Generate a tar file containing ~1000 files of size ~10k and untar it
first on a volume mounted -o whatever and then -o async. Compare the runtimes. The actual testing was done with tar files >200MB.
I think that sysinst should mount media -o async and that it should be reommended to use -o async when restoring backups or installing large files etc.