[BACK]Return to 7.t CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / share / doc / papers / sysperf

File: [cvs.NetBSD.org] / src / share / doc / papers / sysperf / 7.t (download)

Revision 1.3, Thu Aug 7 10:30:47 2003 UTC (20 years, 8 months ago) by agc
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pf42-base, yamt-pf42, yamt-pagecache-tag8, yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, yamt-pagecache, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, tls-maxphys-base, tls-maxphys, tls-earlyentropy-base, tls-earlyentropy, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, phil-wifi, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, netbsd-3-base, netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0, netbsd-3, netbsd-2-base, netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1, netbsd-2-0-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE, netbsd-2-0, netbsd-2, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, mjf-devfs2-base, mjf-devfs2, matt-premerge-20091211, matt-nb8-mediatek-base, matt-nb8-mediatek, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-premerge-20101231, matt-mips64-base2, matt-mips64-base, matt-mips64, matt-armv6-prevmlocking, matt-armv6-nbase, matt-armv6-base, matt-armv6, localcount-20160914, keiichi-mipv6-nbase, keiichi-mipv6-base, keiichi-mipv6, jym-xensuspend-nbase, jym-xensuspend-base, jym-xensuspend, is-mlppp-base, is-mlppp, hpcarm-cleanup-nbase, hpcarm-cleanup-base, hpcarm-cleanup, cube-autoconf-base, cube-autoconf, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, cherry-xenmp-base, cherry-xenmp, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2, agc-symver-base, agc-symver, abandoned-netbsd-4-base, abandoned-netbsd-4, HEAD
Changes since 1.2: +2 -6 lines

Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22309, verified by myself.

.\"	$NetBSD: 7.t,v 1.3 2003/08/07 10:30:47 agc Exp $
.\"
.\" Copyright (c) 1985 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"	@(#)7.t	5.1 (Berkeley) 4/17/91
.\"
.ds RH Conclusions
.NH
Conclusions
.PP
4.2BSD, while functionally superior to 4.1BSD, lacked much of the
performance tuning required of a good system.  We found that
the distributed system spent 10-20% more time in the kernel than
4.1BSD.  This added overhead combined with problems with several
user programs severely limited the overall performance of the
system in a general timesharing environment.
.PP
Changes made to the system since the 4.2BSD distribution have
eliminated most of the
added system overhead by replacing old algorithms
or introducing additional cacheing schemes.  
The combined caches added to the name translation process
reduce the average cost of translating a pathname to an inode by more than 50%.
These changes reduce the percentage of time spent running
in the system by nearly 9%.
.PP
The use of silo input on terminal ports only when necessary
has allowed the system to avoid a large amount of software interrupt
processing.  Observations show that the system is forced to
field about 25% fewer interrupts than before.
.PP
The kernel
changes, combined with many bug fixes, make the system much more
responsive in a general timesharing environment.
The 4.3BSD Berkeley UNIX system now appears
capable of supporting loads at least as large as those supported under
4.1BSD while providing all the new interprocess communication, networking,
and file system facilities.  
.nr H2 1
.ds RH Acknowledgements
.SH
\s+2Acknowledgements\s0
.PP
We would like to thank Robert Elz for sharing his ideas and 
his code for cacheing system wide names and searching the process table.
We thank Alan Smith for initially suggesting the use of a
capability based cache.
We also acknowledge
George Goble who dropped many of our changes
into his production system and reported back fixes to the
disasters that they caused.
The buffer cache read-ahead trace package was based
on a program written by Jim Lawson.  Ralph Campbell
implemented several of the C library changes.  The original
version of the Internet daemon was written by Bill Joy.
In addition,
we would like to thank the many other people that contributed
ideas, information, and work while the system was undergoing change.
.ds RH References
.nr H2 1
.sp 2
.SH
\s+2References\s-2
.LP
.IP [Cabrera84] 20
Luis Felipe Cabrera, Eduard Hunter, Michael J. Karels, and David Mosher,
``A User-Process Oriented Performance Study of Ethernet Networking Under
Berkeley UNIX 4.2BSD,''
Research Report No. UCB/CSD 84/217, University of California,
Berkeley, December 1984.
.IP [Cabrera85] 20
Luis Felipe Cabrera, Michael J. Karels, and David Mosher,
``The Impact of Buffer Management on Networking Software Performance
in Berkeley UNIX 4.2BSD: A Case Study,''
Proceedings of the Summer Usenix Conference, Portland, Oregon,
June 1985, pp. 507-517.
.IP [GADS85] 20
GADS (Gateway Algorithms and Data Structures Task Force),
``Toward an Internet Standard for Subnetting,'' RFC-940,
Network Information Center, SRI International,
April 1985.
.IP [Joy80] 20
Joy, William,
``Comments on the performance of UNIX on the VAX'',
Computer System Research Group, U.C. Berkeley. 
April 1980.
.IP [Kashtan80] 20
Kashtan, David L.,
``UNIX and VMS, Some Performance Comparisons'',
SRI International.  February 1980.
.IP [Lankford84] 20
Jeffrey Lankford,
``UNIX System V and 4BSD Performance,''
\fIProceedings of the Salt Lake City Usenix Conference\fP,
pp 228-236, June 1984.
.IP [Leffler84] 20
Sam Leffler, Mike Karels, and M. Kirk McKusick,
``Measuring and Improving the Performance of 4.2BSD,''
\fIProceedings of the Salt Lake City Usenix Conference\fP,
pp 237-252, June 1984.
.IP [McKusick85]
M. Kirk McKusick, Mike Karels, and Samual Leffler,
``Performance Improvements and Functional Enhancements in 4.3BSD''
\fIProceedings of the Portland Usenix Conference\fP,
pp 519-531, June 1985.
.IP [Mockapetris83] 20
Paul Mockapetris, ``Domain Names \- Implementation and Schedule,''
Network Information Center, SRI International,
RFC-883,
November 1983.
.IP [Mogul84] 20
Jeffrey Mogul, ``Broadcasting Internet Datagrams,'' RFC-919,
Network Information Center, SRI International,
October 1984.
.IP [Mosher80] 20
Mosher, David,
``UNIX Performance, an Introspection'',
Presented at the Boulder, Colorado Usenix Conference, January 1980.
Copies of the paper are available from
Computer System Research Group, U.C. Berkeley. 
.IP [Nagle84] 20
John Nagle, ``Congestion Control in IP/TCP Internetworks,'' RFC-896,
Network Information Center, SRI International,
January 1984.
.IP [Ritchie74] 20
Ritchie, D. M. and Thompson, K.,
``The UNIX Time-Sharing System'',
CACM 17, 7. July 1974. pp 365-375
.IP [Shannon83] 20
Shannon, W.,
private communication,
July 1983
.IP [Walsh84] 20
Robert Walsh and Robert Gurwitz,
``Converting BBN TCP/IP to 4.2BSD,''
\fIProceedings of the Salt Lake City Usenix Conference\fP,
pp 52-61, June 1984.