UNIX System and Network Performance Tuning
UNIX System and Network Performance Tuning
Performance Tuning
A tutorial introducing the gentle art of system performance tuning for UNIX
system managers and like minded individuals wherein we propose to explain
how, while systems are constantly growing faster with each passing year, they
never are fast enough.
Topics
❍ Introductory concepts
❍ CPU systems
❍ Memory systems
❍ Disk systems
❍ Windows, graphics and databases
❍ Networks
❍ Benchmarks
❍ Tuning up applications
❍ FINAL EXAM
Page 1
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 1
Introductory concepts
Course Biasses
Page 2
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 2
Fundamental laws of system
performance
❍ Be a scientist
• FIRST: Measure
• SECOND: Hypothesize
• THIRD: Test/Verify/Fiddle with things
• GOTO FIRST
❍ Change only one thing at a time
❍ Note what you changed
❍ Save measurement data
❍ TANSTAAFL: There Ain’t No Such Thing As A
Free Lunch
❍ Don’t look for a panacea
6
Page 3
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 3
The uncertainty principle
Page 4
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 4
Hardware and O/S interaction:
unbalanced systems
10
Page 5
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 5
Hardware and O/S interaction:
incorrect algorithms - example
inodes
• To write a file
inodes block means updating
data
data inode and data block
blocks
blocks
• Requires a seek from
inside to outside of
disk for each write
• Seeks are slow
• Seeks also discard
cached
cached modern SCSI disk track
track
track caches
11
12
Page 6
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 6
Hardware and O/S interaction:
resource starvation
13
14
Page 7
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 7
Topics
❍ Introductory concepts
❍ CPU systems
❍ Memory systems
❍ Disk systems
❍ Windows, graphics and databases
❍ Networks
❍ Benchmarks
❍ Tuning up applications
❍ FINAL EXAM
15
CPU systems
16
Page 8
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 8
What does the CPU do?
18
Page 9
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 9
CPU performance measures: key
concepts
19
Page 10
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 10
CPU performance measures: key
concepts: load average
21
Page 11
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 11
Measuring CPU: Uptime
. uptime
11:48pm up 1 day, 23:29, 49 users, load average: 0.34, 0.11, 0.01
. while true; do
you
you can
can tell
tell
> sleep 1 nobody
nobody is
is
doing much
doing much
> uptime
> done
11:48pm up 1 day, 23:30, 49 users, load average: 0.21, 0.09, 0.00
11:48pm up 1 day, 23:30, 49 users, load average: 0.21, 0.09, 0.00
11:48pm up 1 day, 23:30, 49 users, load average: 0.21, 0.09, 0.00
11:48pm up 1 day, 23:30, 49 users, load average: 0.28, 0.10, 0.01
11:48pm up 1 day, 23:30, 49 users, load average: 0.28, 0.10, 0.01
11:48pm up 1 day, 23:30, 49 users, load average: 0.28, 0.10, 0.01
11:48pm up 1 day, 23:30, 49 users, load average: 0.28, 0.10, 0.01
^C.
23
system
system
time
time
user
user idle
idle
time
time time
time
. vmstat 5
procs memory page disk faults
cpu
r b w avm fre re at pi po fr de sr s0 s1 s2 s3 in sy cs us sy id
0 0 0 0 2496 0 6 16 0 1 0 0 0 0 0 1 168 336 31 2 7 91
0 0 0 0 2504 0 4 0 0 0 0 0 0 0 0 0 86 231 22 1 2 97
0 0 0 0 2352 0 2 0 0 0 0 0 0 0 0 0 79 211 22 0 1 98
0 0 0 0 2296 0 0 0 0 0 0 0 0 0 0 0 61 205 20 1 2 97
^C.
24
Page 12
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 12
Measuring CPU: mpstat
. mpstat 5
average cpu 0 cpu 1 cpu 2
us ni sy id us ni sy id us ni sy id us ni sy id
2 0 7 91 2 0 7 91 2 0 7 91 2 0 7 91
0 0 1 98 1 0 1 98 0 0 2 97 0 0 1 99
0 0 7 93 1 0 0 99 0 0 0100 0 0 21 79
1 0 3 96 2 0 3 95 0 0 3 97 0 0 3 97
1 0 4 95 2 0 5 94 1 0 3 95 0 0 3 96
0 0 2 97 1 0 4 95 0 0 3 97 0 0 1 99
^C.
25
26
Page 13
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 13
Measuring CPU: ps
CPU
CPU resident
resident
size
size status
status
time
time size
size
. ps -aux
F UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND
80003 0 0 0 0 -25 0 0 0 runout D ? 0:00 swapper
88001 0 187 1 0 1 0 104 360 select I ? 0:00 rpc.lockd
28001 0 195 1 2 5 0 400 816 child I ? 0:00 /usr/local/b
88001 0 198 1 0 1 0 96 392 select I ? 0:13 /usr/local/e
2001 0 213 1 0 1 0 40 112 socket I ? 0:00 sh -c while
26001 0 215 213 5 1 5 104 536 select S N ? 0:00 /usr/local/w
20001 0 218 215 5 1 5 112 560 select S N ? 0:12 wplmd60 -T s
20001 0 220 1 0 5 0 32 112 child I ? 0:00 /bin/sh /usr
800001 13239 1 0 1 0 184 944 select I ? 0:26 /usr/local/e
88001 0 241 1 5 1 0 72 0 socket I ? 0:00 /bin/httpd_3
27
resident
resident CPU
CPU
size
size status
status
size
size percentage
percentage
last pid: 27674; load averages: 1.86, 1.49, 0.95
27681 1.72, 1.47, 0.95 00:13:43
2264processes: 2533sleeping, 23running, 8 stopped
Cpu states: 0.8% user, 0.0% nice, 32.9% system, 66.2% idle
Memory: 170M available, 1245 in use, 465 free, 18M locked
PID USERNAME PRI NI SIZE RES STATE TIME WCPU CPU COMMAND
27600 root 788 0 72K 328K rrun/2 1:33 79.42% 79.30 du
27670 mjr 538 0 14148K 1856 run/1 0:012 13.58% 7.03 top.Series5
27681 root 29 0 120K 232K run/0 0:00 0.00% 0.00% elpd
257 root 1 0 120K 280K sleep 2:295 0.00% 0.00% elpd
163 root 1 0 48K 0K sleep 2:04 0.00% 0.00% vnfsd
28
Page 14
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 14
Solving CPU problems
29
Page 15
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 15
Solving CPU problems: More
processors
31
Page 16
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 16
Topics
❍ Introductory concepts
❍ CPU systems
❍ Memory systems
❍ Disk systems
❍ Windows, graphics and databases
❍ Networks
❍ Benchmarks
❍ Tuning up applications
❍ FINAL EXAM
33
Memory systems
34
Page 17
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 17
Real and virtual memory
35
36
Page 18
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 18
Real and virtual memory:
allocation strategies
37
38
Page 19
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 19
Swapping
39
Paging
Page 20
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 20
Paging and the birth of a process
41
42
Page 21
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 21
Thrashing
Page 22
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 22
What happens when memory runs
low
45
. pstat -s
55448k allocated + 20944k reserved = 76392k used, 538600k available
.
total
total active
active remaining
remaining
swap
swap swap
swap swap
swap
Page 23
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 23
Measuring memory: ps
memory
memory
hogs
hogs
. ps -alx | sort -r -n +8
UID PID PPID CP PRI NI SZ RSS WCHAN STAT TT TIME COMMAND
175 15893 15884 0 1 0 920 1848 select I r2 0:57 pine
59 9370 18173 18 1 0 584 1728 select I r1 0:05 gs -dQUIET -
174 23698 23191 3 1 0 624 1664 select I t1 0:52 xmh -geometr
59 18173 16842 0 1 0 328 1528 select I r1 0:23 ghostview 5m
261 8197 1 0 1 0 328 1440 select I p6 0:04 xterm -title
261 25712 1 0 1 0 320 1368 select I ? 0:04 xterm -title
164 15882 15876 2 1 0 432 1368 select I r0 0:33 xmh -geometr
261 25721 1 0 1 0 320 1336 select I ? 0:03 xterm -title
^C
47
page
page page
page scan
scan
ins
ins outs
outs rate
rate
. vmstat 5
procs memory page disk faults
cpu
r b w avm fre re at pi po fr de sr s0 s1 s2 s3 in sy cs us sy id
2 2 0 0 47600 0 6 16 0 1 0 0 0 0 0 1 168 342 31 2 7 91
4 0 0 0 47456 0 8 104 0 0 0 0 1 1 0 3 407 559 53 2 59 40
2 0 0 0 47312 0 1 104 0 0 0 0 0 0 0 0 3381632 47 3 64 33
1 1 0 0 47280 0 0 112 0 0 0 0 0 0 0 0 279 979 40 3 56 41
^C.
48
Page 24
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 24
Topics
❍ Introductory concepts
❍ CPU systems
❍ Memory systems
❍ Disk systems
❍ Windows, graphics and databases
❍ Networks
❍ Benchmarks
❍ Tuning up applications
❍ FINAL EXAM
49
Disk systems
50
Page 25
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 25
Disk systems: the role of disks
51
52
Page 26
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 26
Disk caches and filesystem caches
53
54
Page 27
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 27
File system performance: reading
Page 28
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 28
File system performance: allocating
57
Free block
inodes
inodes list head
in superblock
(with cached next
entries) block
next
block
data
data next
block
58
Page 29
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 29
File system performance: UFS
filesystem
inodes
inodes
on
on cylinder
cylinder
groups
groups 10101011011011111
data
data is
is
between
between
cylinder When allocating a
cylinder
groups
groups block system searches
. in-memory bitmap
. based on cylinder
group summaries
59
index
index
checkpoint
checkpoint
When allocating a
block system searches
in-memory index
60
Page 30
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 30
File system performance: silicon
disks
Page 31
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 31
Network File Systems: NFS
63
64
Page 32
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 32
Measuring filesystems
65
blocks
blocks // transf
transf // millisec
millisec //
second
second second
second seek
seek
. iostat 5
tty sd0 sd1 sd2 sd3
cpu
tin tout bps tps msps bps tps msps bps tps msps bps tps msps
4 274 4 0 15.6 1 0 13.6 5 1 12.0 24 4 13.2
0 21 0 0 9.0 8 1 18.2 2 1 18.8 0 0 19.3
0 15 0 0 0.0 0 0 0.0 0 0 0.0 3 0 12.3
0 16 0 0 0.0 0 0 0.0 0 0 0.0 2 0 27.3
^C.
66
Page 33
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 33
Measuring filesystems: iostat
reads
reads // writes
writes // percent
percent
second
second second
second utilized
utilized
. iostat -D 5
sd0 sd1 sd3 sd7
rps wps util rps wps util rps wps util rps wps util
0 0 2.0 1 1 3.6 3 3 13.6 7 6 25.9
1 1 8.5 1 0 2.2 6 6 20.8 23 18 82.0
0 0 1.2 1 0 2.4 10 7 37.2 17 16 71.3
1 1 8.8 1 1 6.2 7 7 32.1 20 14 74.9
1 0 4.2 1 0 1.4 8 7 38.2 15 13 58.3
^C.
67
. nfsstat -c directory
writes errors directory reads
writes errors reads reads
Client rpc: reads
calls badcalls retrans badxid timeout wait newcred timers
1113240 59 12656 12145 12701 0 0 72441
Client nfs:
calls badcalls nclget nclsleep
1113240 59 1113240 0
null getattr setattr root lookup readlink read
0 0% 136235 12% 2487 0% 0 0% 138468 12% 10152 0% 790623 71%
wrcache write create remove rename link symlink
0 0% 15615 1% 8208 0% 4094 0% 3550 0% 1 0% 0 0%
mkdir rmdir readdir fsstat
0 0% 0 0% 3717 0% 90 0%
.
68
Page 34
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 34
Improving performance: buffer
cache
69
70
Page 35
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 35
Improving performance: load
spreading
71
72
Page 36
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 36
Improving performance: NFS
tricks
73
❍ Asynchronous NFS
• NFS writes are always supposed to be synchronous
• Makes NFS writes incredibly painfully slow
• Some vendors support asynchronous NFS in which the server
tells the client it has completed the write before it actually has
• If the server crashes the client will think the file was successfully
written but it wasn’t
• Asynchronous NFS is best for things like /tmp - but usually you
don’t want a dynamic filesystem like /tmp NFS-mounted in the
first place!
• Depending on size of server memory can provide up to 700%
write performance boost
74
Page 37
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 37
Improving performance: NFS
tricks
❍ NVRAM cache
• System modified to write NFS write requests to NVRAM instead
of disk
• Client receives NFS write ack instantly
• Asynchronous process flushes NVRAM cache through normal
filesystem on server
• Cache preserved across boots
• Depending on cache size typically provides a performance boost
of up to 300%
• If cache is on motherboard make sure that the cache is flushed
when field service replaces mother board. Also make sure that
new motherboard caches are cleared before installing. :)
75
Client Server
NFS mount
/home /usr/local
directory /usr/X11R5
with user’s /usr/spool/news
files /usr/spool/mail
76
Page 38
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 38
Improving performance: NFS set
up wrong
Client Server
77
Page 39
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 39
Topics
❍ Introductory concepts
❍ CPU systems
❍ Memory systems
❍ Disk systems
❍ Windows, graphics and databases
❍ Networks
❍ Benchmarks
❍ Tuning up applications
❍ FINAL EXAM
79
80
Page 40
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 40
Effects of windowing systems on
performance
Page 41
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 41
Effects of graphic accelerators
83
Hardwired terminals
Page 42
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 42
Databases
85
Introduction to databases
86
Page 43
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 43
Resource profile of databases
87
88
Page 44
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 44
Solving database performance
problems
89
Topics
❍ Introductory concepts
❍ CPU systems
❍ Memory systems
❍ Disk systems
❍ Windows, graphics and databases
❍ Networks
❍ Benchmarks
❍ Tuning up applications
❍ FINAL EXAM
90
Page 45
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 45
Networks
91
Overview of networks
❍ TCP
• Reliable end-to-end virtual circuit with sequenced delivery
• High throughput
• Congestion control moderates data rate
❍ UDP
• Unreliable “message” delivery without sequencing
• High throughput
• Can spew packets as fast as the machine can send them*
❍ Those who don’t understand TCP are doomed to
re-invent it
• The world is full of UDP-based code with loads of logic that does
what TCP does better [like NFS]
* Faster, actually. When it can’t
send them it throws them away. 92
Page 46
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 46
Measuring network performance
❍ Ping
• Measures packet round trip time
• Useful for measuring packet lossage between hosts or networks
❍ Traceroute
• Tries to determine route that packets are taking between hosts
or networks
• Useful for detecting weird routing situations [Sad But True
story: one organization was routing traffic between 2 machines
over an international link because the admin didn’t understand
the concept of subnets. Needless to say, this was slow.]
❍ Netstat
• Tons of useful information about how much data system has
sent and received
93
❍ Ttcp
• Measures TCP throughput between hosts
❍ NNstat
• Very configurable network statistics sniffing and gathering tool
• Cryptic and awkward to use
• Generates really nice reports
• Free [Do an Archie search]
❍ Etherman / Interman / Packetman
• Graphical load monitor
• X-based
• Running it on your system will create other performance
problems!
• Free [Do an Archie search]
94
Page 47
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 47
Measuring networks: ping
. ping sol
PING sol: 56 data bytes
64 bytes from sol (192.33.112.100): icmp_seq=0. time=2. ms
64 bytes from sol (192.33.112.100): icmp_seq=1. time=5. ms
64 bytes from sol (192.33.112.100): icmp_seq=2. time=4. ms
errors
errors
64 bytes from sol (192.33.112.100): icmp_seq=3. time=6. ms
64 bytes from sol (192.33.112.100): icmp_seq=4. time=2. ms
64 bytes from sol (192.33.112.100): icmp_seq=5. time=7. ms
^C
----sol PING Statistics----
6 packets transmitted, 6 packets received, 0% packet loss
round-trip (ms) min/avg/max = 2/4/7
.
trip
trip time
time
95
packets
packets read
read packets
packets
read
read errors
errors sent
sent
. netstat -i
Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis
le0 1500 192.33.112.0 illuminati 1323992 455 1037625 4 11715
lo0 1536 loopback localhost 31509 0 31509 0 0
.
collisions
collisions
A few collisions
is OK. This is less
than 2%!!
96
Page 48
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 48
Measuring networks: netstat
. netstat -m
192/320 mbufs in use:
1 mbufs allocated to data
1 mbufs allocated to packet headers
75 mbufs allocated to socket structures
how
how much
much of
of the
the
99 mbufs allocated to protocol control blocks system’s
system’s network
network
3 mbufs allocated to routing table entries buffers are left
buffers are left
11 mbufs allocated to socket names and addresses
2 mbufs allocated to interface addresses
0/28 cluster buffers in use
68 Kbytes allocated to network (35% in use)
can
can indicate
indicate aa
0 requests for memory denied
system
system without
without
0 requests for memory delayed enough
enough network
network
buffers
buffers or
or RAM
RAM
0 calls to protocol drain routines
97
TCP
TCP load
load //
thruput
thruput thruput
thruput
. ttcp -t -s illuminati
ttcp-t: nbuf=1024, buflen=1024, port=2000
ttcp-t: connect
ttcp-t: 0.0user 0.4sys 0:05real 9% 0i+43d 21maxrss 0+0pf 378+5csw
ttcp-t: 1048576 bytes processed
ttcp-r: 0.0user 0.2sys 0:05real 4% 0i+29d 19maxrss 0+1pf 773+774csw
ttcp-r: 1048576 bytes processed
ttcp-r: 0.26 CPU sec = 3938.46 KB/cpu sec, 31507.7 Kbits/cpu sec
ttcp-r: 5.98 real sec = 171.074 KB/real sec, 1368.59 Kbits/sec
.
98
Page 49
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 49
Measuring networks: NNStat
❍ Daemon listener
• Accepts flexible and very powerful directions about what types
of things to look for and what kinds of statistics to maintain
about them
• Efficient listener doesn’t use much CPU
❍ Client stats-poller
• Periodically downloads from daemon to disk
• Can merge reports from multiple listening posts
❍ Interactive access
• Administrator can interactively query server for statistics
❍ This is a good tool if you want to summarize traffic
between hosts for a given service
99
100
Page 50
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 50
Improving network performance
101
102
Page 51
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 51
A simple network layout
Clients
10BaseT 100BaseT
Hub hub
Offsite
router
103
Clients
10BaseT 100BaseT
Hub hub
Offsite Insite
router router
10BaseT 100BaseT
Hub hub
104
Page 52
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 52
Topics
❍ Introductory concepts
❍ CPU systems
❍ Memory systems
❍ Disk systems
❍ Windows, graphics and databases
❍ Networks
❍ Benchmarks
❍ Tuning up applications
❍ FINAL EXAM
105
Benchmarks
106
Page 53
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 53
How vendors cheat on benchmarks
107
108
Page 54
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 54
How vendors cheat on benchmarks
109
110
Page 55
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 55
How to interpret a benchmark
Page 56
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 56
How to write a benchmark
❍ Don’t
❍ Use your real application that you install the way
you would run it
113
Topics
❍ Introductory concepts
❍ CPU systems
❍ Memory systems
❍ Disk systems
❍ Windows, graphics and databases
❍ Networks
❍ Benchmarks
❍ Tuning up applications
❍ FINAL EXAM
114
Page 57
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 57
Tuning applications
115
Tuning Applications
116
Page 58
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 58
Measuring applications:
accounting
117
lousy
lousy
code
code
. cat > x.c
main()
{
int x;
while(read(0,&x,sizeof(x)) > 0)
write(1,&x,sizeof(x));
}
. cc -pg -o x x.c
.
compile
compile
w/profiling
w/profiling
118
Page 59
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 59
Measuring applications: gprof
run csh
run
normally csh has
has aa
normally builtin
builtin “time”
“time” that
that
gives
gives I/O
I/O
counts,
counts, etc.
etc.
.time x < /etc/termcap > /dev/null
real 0m6.81s
user 0m0.70s profiling
profiling
sys 0m6.10s output
output
. ls -l
total 40
-rw------- 1 mjr 7108 Apr 4 01:35 gmon.out
-rwx------ 1 mjr 32768 Apr 4 01:34 x
-rw------- 1 mjr 77 Apr 4 01:30 x.c
.
119
run
run
gprof
gprof Wow!
Wow!
it
it does
does aa
lot of I/O!!
lot of I/O!!
. gprof x | more
index %time self descendents called+self name index
[1] 99.5 0.00 5.35 start [1]
0.09 5.26 1/1 _main [2]
0.00 0.00 1/1 _on_exit [101]
0.00 0.00 1/1 _exit [95]
-----------------------------------------------
0.09 5.26 1/1 start [1]
[2] 99.5 0.09 5.26 1 _main [2]
3.47 0.00 33361/33361 _read [3]
1.79 0.00 33360/33360 _write [4]
120
Page 60
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 60
Measuring applications: trace
121
Topics
❍ Introductory concepts
❍ CPU systems
❍ Memory systems
❍ Disk systems
❍ Windows, graphics and databases
❍ Networks
❍ Benchmarks
❍ Tuning up applications
❍ FINAL EXAM
122
Page 61
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 61
FINAL EXAM
123
124
Page 62
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 62
FINAL EXAM: Question #2
125
126
Page 63
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 63
FINAL EXAM: Question #4
127
128
Page 64
Copyright(C) 1999, Marcus J. Ranum - all rights reserved 64