No empty .Rs/.Re
[netbsd-mini2440.git] / share / doc / papers / sysperf / 0.t
blob5ce28273bc4e1d86c161d31a043085ca00add1e5
1 .\"     $NetBSD: 0.t,v 1.2 1998/01/09 06:54:27 perry Exp $
2 .\"
3 .\" Copyright (c) 1985 The Regents of the University of California.
4 .\" All rights reserved.
5 .\"
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
8 .\" are met:
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\"    notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\"    notice, this list of conditions and the following disclaimer in the
13 .\"    documentation and/or other materials provided with the distribution.
14 .\" 3. Neither the name of the University nor the names of its contributors
15 .\"    may be used to endorse or promote products derived from this software
16 .\"    without specific prior written permission.
17 .\"
18 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" SUCH DAMAGE.
29 .\"
30 .\"     @(#)0.t 5.1 (Berkeley) 4/17/91
31 .\"
32 .if n .ND
33 .TL
34 Measuring and Improving the Performance of Berkeley UNIX*
35 .sp
36 April 17, 1991
37 .AU
38 Marshall Kirk McKusick,
39 Samuel J. Leffler\(dg,
40 Michael J. Karels
41 .AI
42 Computer Systems Research Group
43 Computer Science Division
44 Department of Electrical Engineering and Computer Science
45 University of California, Berkeley
46 Berkeley, CA  94720
47 .AB
48 .FS
49 * UNIX is a trademark of AT&T Bell Laboratories.
50 .FE
51 .FS
52 \(dg Samuel J. Leffler is currently employed by:
53 Silicon Graphics, Inc.
54 .FE
55 .FS
56 This work was done under grants from
57 the National Science Foundation under grant MCS80-05144,
58 and the Defense Advance Research Projects Agency (DoD) under
59 ARPA Order No. 4031 monitored by Naval Electronic System Command under
60 Contract No. N00039-82-C-0235.
61 .FE
62 The 4.2 Berkeley Software Distribution of 
63 .UX
64 for the VAX\(dd
65 .FS
66 \(dd VAX, MASSBUS, UNIBUS, and DEC are trademarks of
67 Digital Equipment Corporation.
68 .FE
69 had several problems that could severely affect the overall
70 performance of the system.
71 These problems were identified with
72 kernel profiling and system tracing during day to day use.
73 Once potential problem areas had been identified
74 benchmark programs were devised to highlight the bottlenecks.
75 These benchmarks verified that the problems existed and provided
76 a metric against which to validate proposed solutions.
77 This paper examines 
78 the performance problems encountered and describes
79 modifications that have been made
80 to the system since the initial distribution.
81 .PP
82 The changes to the system have consisted of improvements to the
83 performance of the existing facilities,
84 as well as enhancements to the current facilities.
85 Performance improvements in the kernel include cacheing of path name
86 translations, reductions in clock handling and scheduling overhead,
87 and improved throughput of the network subsystem.
88 Performance improvements in the libraries and utilities include replacement of
89 linear searches of system databases with indexed lookup,
90 merging of most network services into a single daemon,
91 and conversion of system utilities to use the more efficient
92 facilities available in 4.2BSD.
93 Enhancements in the kernel include the addition of subnets and gateways,
94 increases in many kernel limits,
95 cleanup of the signal and autoconfiguration implementations,
96 and support for windows and system logging.
97 Functional extensions in the libraries and utilities include
98 the addition of an Internet name server,
99 new system management tools,
100 and extensions to \fIdbx\fP to work with Pascal.
101 The paper concludes with a brief discussion of changes made to
102 the system to enhance security.
103 All of these enhancements are present in Berkeley UNIX 4.3BSD.
106 .sp 2
107 CR Categories and Subject Descriptors:
108 D.4.3
109 .B "[Operating Systems]":
110 File Systems Management \-
111 .I "file organization, directory structures, access methods";
112 D.4.8
113 .B "[Operating Systems]":
114 Performance \-
115 .I "measurements, operational analysis";
117 Additional Keywords and Phrases:
118 Berkeley UNIX,
119 system performance,
120 application program interface.
122 General Terms:
123 UNIX operating system,
124 measurement,
125 performance.
126 .de PT
127 .lt \\n(LLu
128 .pc %
129 .nr PN \\n%
130 .tl '\\*(LH'\\*(CH'\\*(RH'
131 .lt \\n(.lu
133 .af PN i
134 .ds LH Performance
135 .ds RH Contents
136 .bp 1
137 .if t .ds CF April 17, 1991
138 .if t .ds LF DRAFT
139 .if t .ds RF McKusick, et. al.
141 .B "TABLE OF CONTENTS"
143 .sp 1
145 .B "1.  Introduction"
147 .sp .5v
149 .B "2.  Observation techniques
150 \0.1.    System maintenance tools
151 \0.2.    Kernel profiling
152 \0.3.    Kernel tracing
153 \0.4.    Benchmark programs
155 .sp .5v
157 .B "3.  Results of our observations
158 \0.1.    User programs
159 \0.1.1.    Mail system
160 \0.1.2.    Network servers
161 \0.2.    System overhead
162 \0.2.1.    Micro-operation benchmarks
163 \0.2.2.    Path name translation
164 \0.2.3.    Clock processing
165 \0.2.4.    Terminal multiplexors
166 \0.2.5.    Process table management
167 \0.2.6.    File system buffer cache
168 \0.2.7.    Network subsystem
169 \0.2.8.    Virtual memory subsystem
171 .sp .5v
173 .B "4.  Performance Improvements
174 \0.1.    Performance Improvements in the Kernel
175 \0.1.1.    Name Cacheing
176 \0.1.2.    Intelligent Auto Siloing
177 \0.1.3.    Process Table Management
178 \0.1.4.    Scheduling
179 \0.1.5.    Clock Handling
180 \0.1.6.    File System
181 \0.1.7.    Network
182 \0.1.8.    Exec
183 \0.1.9.    Context Switching
184 \0.1.10.   Setjmp and Longjmp
185 \0.1.11.   Compensating for Lack of Compiler Technology
186 \0.2.    Improvements to Libraries and Utilities
187 \0.2.1.    Hashed Databases
188 \0.2.2.    Buffered I/O
189 \0.2.3.    Mail System
190 \0.2.4.    Network Servers
191 \0.2.5.    The C Run-time Library
192 \0.2.6.    Csh
194 .sp .5v
196 .B "5.  Functional Extensions
197 \0.1.    Kernel Extensions
198 \0.1.1.    Subnets, Broadcasts, and Gateways
199 \0.1.2.    Interface Addressing
200 \0.1.3.    User Control of Network Buffering
201 \0.1.4.    Number of File Descriptors
202 \0.1.5.    Kernel Limits
203 \0.1.6.    Memory Management
204 \0.1.7.    Signals
205 \0.1.8.    System Logging
206 \0.1.9.    Windows
207 \0.1.10.   Configuration of UNIBUS Devices
208 \0.1.11.   Disk Recovery from Errors
209 \0.2.    Functional Extensions to Libraries and Utilities
210 \0.2.1.    Name Server
211 \0.2.2.    System Management
212 \0.2.3.    Routing
213 \0.2.4.    Compilers
215 .sp .5v
217 .B "6.  Security Tightening
218 \0.1.    Generic Kernel
219 \0.2.    Security Problems in Utilities
221 .sp .5v
223 .B "7.  Conclusions
225 .sp .5v
227 .B Acknowledgements
229 .sp .5v
231 .B References
233 .sp .5v
235 .B "Appendix \- Benchmark Programs"
236 .de _d
237 .if t .ta .6i 2.1i 2.6i
238 .\" 2.94 went to 2.6, 3.64 to 3.30
239 .if n .ta .84i 2.6i 3.30i
241 .de _f
242 .if t .ta .5i 1.25i 2.5i
243 .\" 3.5i went to 3.8i
244 .if n .ta .7i 1.75i 3.8i