View
7
Download
0
Category
Preview:
Citation preview
I N D E X
521
Symbols3Com, 34316-way RAID-0 setup,
414-4158-way NUMA RAID setup,
412-414
AAbove Idle tool (Performance
Inspector), 102, 104-105accept_redirects parameter
(kernel), 517accept_source_route
parameter (kernel), 517access bits, 203ACEs (access control entries),
file systems, 236ACLs (access control lists), 236active balancing, 191address spaces, 21
kernel address space, 21Moore’s Law, 200user address space, 21virtual address spaces,
196-197area structures, 198-199highmem interface, 201kernel address
spaces, 199kernel image
section, 200
kernel module section, 199
paging, 201-203swapping, 201-203user address spaces,
197-198virtual memory generic
view, 196address translation process,
204-205addressing, I/O devices,
229-230affinity, IRQ, 462-464AFP file system, 347AFS/DFS, 347agebuffer parameter
(bdflush), 249AIM7 benchmarks, 142AIM9 benchmarks, 143, 147aio-max-nr parameter
(kernel), 514aio-nr parameter (kernel), 514algorithms, code tuning,
305-328allocation, pages, 207allocation groups
file systems, 236XFS (Next-Generation File
System), 269analysis methodologies
(benchmarks), 175-176exit strategies, 179
measurements, 177-179run rules, 176target setting, 177tuning, 177-179
anticipatory I/O elevators, 9anticipatory I/O scheduler
(AS), 222-225decayed frequency
tables, 224lowest logical block
information, 226positioning time, 224read anticipation process,
227-228tuning, 224-225
antic_expire parameter (AS I/O scheduler), 225
anycast_delay parameter (kernel), 516
Apache web servers, tuning,338-339
APIs (application programminginterfaces), 21
NAPI (network device driver API), 464-466
SendFile, 458-460applets (Java), 376application benchmarks,
133, 161database benchmarks,
164-166Java benchmarks, 161-163
Johnson_Index.qxd 4/1/05 5:21 PM Page 521
Oracle ApplicationsStandard ApplicationBenchmark, 168
PostMark, 164SAP Standard Application
Benchmark, 168application programming
interfaces (APIs). SeeAPIs (application programming interface)
application servers, 375-376,384-385
availability, 378clustering, 391-394commercial workload
J2EE model, 480-481Trade3 benchmark,
481-504tuning, 479-480
concurrency, 379connection pools, 502-503data integrity, 378database servers,
interactivity, 496-499databases, support, 378distribution, 379enterprise application, 383failover, 378fault tolerance, 378file systems, 390hardware, 387-388heterogeneousness, 379hyperthreading, 504interactivity, 379J2EE (Java 2 Enterprise
Edition), 376-377Java, 376JVM (Java Virtual
Machine), 386-389load balancing, 397memory usage, 389multiple-applications-in-
one, 380multiple-services-in-one,
380
native code, 386networking, 389pass-by-reference, 502performance
requirements, 377-390requests, 380scalability, 378security, 378SMP scaling, 390-391software performance
stack, 382-383string manipulation, 390synchronization, 389thread pools, 501-502threads, 389topologies, 394-398transactions, 380tuning, 398-402vendor server
portability, 378vendors, Linux support, 380web servers, 390
applicationsdesigning, 305-309
clients, 323-324code, 309file I/O, 322-323servers, 309-310sockets, 311, 313-314synchronization,
318-321threads, 315-317timing routines,
310-311profiling, 302-303
app_solicit parameter (kernel), 516
architecture models, webservers, 336-337
architecturesdatabases, 362kernel, 20-23multiprocessing
clusters, 38, 43-45
NUMA (Non-UniformMemoryArchitecture), 38,48-54
processor mixing, 38SMP (Symmetrical
Multiprocessing),36-39
area structures, virtual memory, 198-199
AS (anticipatory I/O scheduler), 222-225
deadline behavior, 416-417decayed frequency
tables, 224lowest logical block
information, 226positioning time, 224read anticipation process,
227-228sequential read
performance, 415-416tuning, 224-225
asymmetrical multiprocessingsystems, 28
asynchronous I/O, 246databases, 371-372file systems, 249-250
availability, applicationservers, 378
Bbadblocks utility (Ext2/Ext3
file system), 258banks, physical memory, 22Baseline column
(NetBench), 469base_reachable_time
parameter (kernel), 516bdflush kernel daemon, 512
parameters, 248-249BEA WebLogic, application
servers, 377benchmarks, 131, 173
analysis, 177-179
522 Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 522
application benchmarks,133, 161
database benchmarks,164-166
Java benchmarks,161-163
Oracle ApplicationsStandardBenchmark, 168
PostMark benchmarks,164
SAP StandardApplicationBenchmark, 168
consistency, 132enterprise benchmarks, 133exit strategies, 179FFSB (flexible file system
benchmark), 409file servers, 408I/O schedulers, 408-409Linux kernel performance
benchmarks, 179-184mail servers, 409measurements, 177-179metadata, 409microbenchmarks,
133-134disk benchmarks,
150-159network benchmarks,
159-160operating system
benchmarks,134-143, 147-150
network performance,456-457
NetBench, 468-470Netperf3 benchmark,
471-472SPECWeb99 benchmark,
475-476VolcanoMark bench-
mark, 473-474
operating system benchmarks, 173
analysis methodology,175-179
kernel performancebenchmarks,179-184
methodology casestudy, 175
numerical analysis, 174simulators, 174tracing, 173workload characteriza-
tion, 174repeatability, 132run rules, 176sequential read
benchmarks, 409sequential write
benchmarks, 409targets, setting, 177tuning, 177-179web server
benchmarks, 166ECPerf, 168SPECjAppServer, 168SPECweb, 166-168SPECweb SSL, 166-168TCP-W, 166-168
web servers, 408workloads, 132, 134
Berkeley sockets, 311, 313-314BI (business intelligence), 164binding, IRQ, 462-464BIO (block I/O) layer
I/O schedulers, 217-219AS (anticipatory
I/O scheduler),222-225
CFQ (Completely FairQueuing) I/Oscheduler, 225
deadline I/O scheduler,219-220
noop I/O scheduler, 226
performance issues, 226tuning, 221-222
struct page pointers, 219blades, 48block allocationblock groups, Ext2 file
system, 253block size I/O, databases, 372blocks
allocationExt2 file system, 254file systems, 235
increasing, 238super blocks, 236
Bonnie/Bonnie++ benchmarks, 150-152
bonuses, interactive tasks,giving to, 194
bootp_relay parameter (kernel), 517
bottlenecks, system tracing,87-88
OProfile command,93-101
PI (PerformanceInspector), 102-107,110-112, 125-130
requirements, 88strace command, 90-93top utility, 88-90
bottom half handlers, 25bounce buffers, databases, 370browsers, 331BSD (Berkeley Software
Design), 12-16initialization table
Slackware, 14-15system initialization,
12-16System V, compared, 12-16
buffers, read/write buffers,TCP, 281-283
burst transfer rates, datamovement, 243
business intelligence (BI), 164byte range requests, 333
523Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 523
CC programming language,
301, 309C++ programming language,
301, 309caches, 39-40
coherency, SMP(SymmetricalMultiprocessing) system, 29
locality of reference, 40case sensitivity enforced
column (NetBench), 470case studies
benchmarking methodology, 175
commercial workload,Trade3 benchmark,481-504
Ext2/Ext3 file system layout analysis, 424-430
file systemsI/O measurement,
446-452tuning, 436-445
I/O schedulers, 40716-way RAID-0 setup,
414-4158-way NUMA RAID
setup, 412-414AS scheduler, 415-417benchmarks, 408-409CFQ I/O scheduler,
417-420performance, 409single-CPU single-disk
setup, 410-411JFS (Journaled File
System) layout analysis, 430-431
network performance,455, 468
benchmarks, 456-457kernel enhancements,
457-468
NetBench, 468-470Netperf3 benchmark,
471-472SPECWeb99 benchmark,
475-476VolcanoMark bench-
mark, 473-474ReiserFS layout analysis,
432, 434XFS layout analysis, 435
CFQ (Completely FairQueuing) I/O scheduler, 225
AS scheduler, compared,415-417
benchmarks, 4088-way NUMA RAID setup,
benchmark, 412-414performance, 409single-CPU single-disk
setup, benchmark,410-411
16-way RAID-0 setup,benchmark, 414-415
tuning, 417-420CGI (Common Gateway
Interface), 376channel cards, 47chattr utility (Ext2/Ext3 file
system), 258children, sleep averages,
tuning, 192CHILD_PENALTY parameter
(scheduler), tuning, 192chunked encoding, 333client server model, 331-333clients
designing, 323-324tuning, 350-354
file change notifications,353
metadata, 353opportunistic locking,
352-353
protocol layering,351-352
read-only clients,353-354
cluster file systems, 348clustering
application server, 391-394interconnect technology,
databases, 362clusters, 38, 43
HA (high availability)clusters, 43-45
HPCs (high-performanceclusters), 43
Coda, 347code
compilers, 326-327as tuning tools, 303-304gcc (GNU Compiler
Collection) compiler, 301, 309
native code, applicationservers, 386
programs, designing, 309tuning, 301-304
algorithms, 305-328Comer, Douglas E., 505commands
debugfs, 424dump2efs, 425gprof, 303gtop, 65-67hdparm, 243-246iostat, 75-75, 446-450, 452ipconfig, 82ipcs, 289-291jfs_mkfs, 266less, 26logrotate, 11mk fs, 234-237mke2fs, 255-256mkfs, 424netstat, 80-83nfsstat, 83
524 Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 524
OProfileopcontrol, 94-95oprofpp, 96op_merge, 101op_time, 97op_to_source, 98system tracing, 93-96,
98-99, 101PI (Performance
Inspector)pipcntr, 129post, 129ptt, 130pttstats, 130swtrace, 128-129
prof, 302ps, 71-72pttstats, 105, 107run.itrace, 110-111sar, 67-69, 76, 78sh, 339strace, 90-93sysctl, 278, 299top, 65-67, 88, 90tprof, 107, 110, 112tune, 234vmstat, 62-65, 72-73
commercial workloadJ2EE model, 480-481Trade3 benchmark,
481-492, 496-499connection pools,
502-503database I/O activity,
495-496hyperthreading, 504JVM (Java Virtual
Machine), 499-501pass-by-reference, 502thread dumps, 492-495thread pools, 501-502web servers, 491
tuning, 479-480Common Gateway Interface
(CGI), 376
compilersas tuning tools, 303-304gcc (GNU Compiler
Collection) compiler,301, 309
compile_et utility (Ext2/Ext3file system), 258
compiling code, 326-327Completely Fair Queuing
(CFQ) I/O scheduler, 225component benchmarks. See
microbenchmarksconcurrency
application servers, 379web servers, 336
CONFIG kernel parameters, 517
configurationExt3 file system, 256hard drives, multiple hard
drives, 4-5IPC (interprocess
communication),298-299
JFS (Journaled FileSystem), 266
kernel, configurable features, 9
RAID (Redundant Arrayof Inexpensive Disks),7-8
ReiserFS, 260XFS (Next-Generation File
System), 269connection management,
TCP, kernel parameters,285-286
connection pools, applicationservers, 502-503
contention statistics,generating, JLM (JavaLock Monitor), 125-128
context switching, 24-25conversions, file systems, 6-7
countersJLM (Java Lock Monitor),
125-128OProfile, 94
CPU scheduler, virtual memory, 212-214
CPUs (central processingunits), utilization,monitoring, 59-69
create benchmarks, 409crediting interactive tasks,
scheduler, 192CRO (Continuous Reliable
Operation), IBM zSeriesmainframes, 47
DD-SACK, TCP, enabling, 285data integrity
application servers, 378assuring, 247
data movementburst transfer rates, 243disks, 241-242internal transfer rates, 243sustained transfer
rates, 243data=writeback column
(NetBench), 469database benchmarks,
164-166results, 182
database servers, 361application servers,
interactivity, 496-499databases
application servers,support for, 378
architectures, 362clustering interconnect
technology, 362decision support system
(DSS) workloads, 362
525Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 525
I/O management, 370asynchronous I/O,
371-372block size I/O, 372bounce buffers, 370direct I/O, 372raw I/O, 371request locks, 373vectored I/O, 371
logging devices, 367-368memory management,
369-370OLTP (online transaction
processing), 362process management,
368-369tuning, 362
global memory,365-366
I/O, 363load balancing, 363, 365queue length, 363response times, 363
workloads, 367-368dbench, 155-159dcache read copy update
column (NetBench), 470deadline behavior, AS
scheduler, 416-417deadline I/O elevators, 9deadline I/O schedulers,
219-220deadlocking, semaphores, 27debugfs utility, 259, 424debugging
Ext2 file system, 259kernel parameters, 511ReiserFS, 264
decayed frequency tables, 224decision support (DS), 164decision support system
(DSS) workloads,databases, 362
dedicated network storageservers, 344
default threads, virtual memory, 195
defragmentation, file systems, 246
delay_first_probe_time parameter (kernel), 516
dentry-state parameter (kernel), 514
designing programs, 305-309clients, 323-324code, 309file I/O, 322-323servers, 309-310sockets, 311-314synchronization, 318-321threads, 315-317timing routines, 310-311
detailed symbol mode reports(OProfile), 96
device special files, 32devices, I/O devices,
addressing, 229-230dir-notify-enable parameter
(kernel), 514direct I/O, databases, 372directories, 236
Ext2 file system, 253-254JFS (Journaled File
System), 265dirty bits, 203dirty_background_ratio
parameter (virtual memory), 209
dirty_expire_centisecs parameter (virtual memory), 209
dirty_ratio parameter (virtualmemory), 209
dirty_writeback_sentisecsparameter (virtual memory), 209
disk benchmarks, 150Bonnie/Bonnie++
benchmarks, 150-152dbench, 155-159
IOmeter benchmarks, 152IOzone benchmarks, 152Penguinmeter
benchmarks, 153tiobench, 153-155
disksfile systems, 241
data movement,241-242
hdparm command,243-246
rotational speed,242-243
track-to-track seekspeed, 242-243
transfer rates, 243multiple disks,
configuring, 4-5partitions, placement, 4-5RAID (Redundant Array
of Inexpensive Disks),configuring, 7-8
distribution, applicationservers, 379
DMZ topology, applicationservers, 395
DNS servers, 35domainname parameter
(kernel), 511dquot-max parameter
(kernel), 514dquot-nr parameter
(kernel), 514DS (decision support), 164dumpe2fs utility (Ext2/Ext3
file system), 259, 425dynamic content
SPECWeb99 benchmark,475-476
web servers, 331dynamic kernel patches,
PI (PerformanceInspector), 103
dynamic link libraries,327-328
526 Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 526
Ee2fsck utility (Ext2 file
system), 259e2image utility (Ext2 file
system), 259e2label utility (Ext2 file
system), 259EAs (extended attributes), file
systems, 236ecn parameter (kernel), 519ECPerf benchmarks, 168EJB (Enterprise Java
Beans), 376elevators (I/O), 9enterprise applications
clustering, 391-394J2EE, 383SMP scaling, 390-391topologies, 394-398tuning, 398-402
enterprise benchmarks, 133Enterprise Java Beans
(EJB), 376enterprise servers, 42Enterprise Storage Server
(ESS), 48error_burst parameter
(kernel), 517error_cost parameter
(kernel), 517ESCON channel cards, 47ESS (Enterprise Storage
Server), 48etc/inittab initialization table,
12-16Ethereal packet capture tool,
334-335evaluation methodologies
(performance), 173analysis methodology,
175-179benchmarking
methodology casestudy, 175
kernel performancebenchmarks, 179-184
numerical analysis, 174simulators, 174tracing, 173workload characterization,
174evenly affined IRQs column
(NetBench), 469event balancing, 191event-driven web servers,
tuning, 339exit strategies, benchmarks, 179EXIT_WEIGHT parameter
(scheduler), tuning, 192Ext2 file system, 5, 30, 253
block allocation, 254block groups, 253creating, 255-256directories, 253-254Ext3 extensions, 256inodes, 253layout, analyzing, 424-430relationships, 254upgrading, 258utilities, 258-259Ext3 file system,
converting to, 6-7, 258Ext3 file system, 5
Ext2 file system,converting from,6-7, 258
extensions, 256external journal devices,
using on, 258kernel configuration
support, 256layout, analyzing, 424-430partitions, creating, 257tuning, 256, 436-440utilities, 258-259
extended attributes (EAs), filesystems, 236
extensions, Ext3 file system, 256
extentsallocation, file systems, 235file offset, 235file systems, 235JFS (Journaled File
System), 265starting block
numbers, 235external fragmentation, file
systems, 235external journal devices,
Ext3 file systems, usingon, 258
external logs, 423JFS (Journaled File
System), 267tuning, 442-443
ReiserFS, 262tuning, 440-441
XFS (Next-Generation FileSystem), 271
FFACK (Forward
Acknowledgement), TCP,enabling, 285
failover, application servers, 378
fault tolerance, applicationservers, 378
fdatasync function, 247Feigenbaum, Barry, 346FFSB (flexible file system
benchmark), 409FHS (Filesystem Hierarchy
Standard), 13fibre channel, 41FICON channel cards, 47FIFOs, 289fifo_batch parameter (I/O
scheduler), 221
527Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 527
file change notifications,clients, 353
file I/O, 322-323file integrity, assuring, 247file offset, 235file servers, 343
benchmarks, 408NAS (network attached
storage), 344network file system
protocols, 345-350tuning, 354-355
load measurement, 358NFS (Network File
System), 355-356performance
measurement, 357Samba, 356-357
file status flags, setting, 247file synchronization, 246-248file systems, 29, 233
ACEs (access controlentries), 236
ACLs (access control lists), 236
allocation groups, 236application servers, 390asynchronous I/O, 249-250bdflush kernel daemon,
paramerers, 248-249block allocation, 235converting, 6-7creating
mk fs command,234-237
planning, 234defragmentation, 246device special files, 32directories, 236disks, 241
data movement,241-242
hdparm command,243-246
rotational speed,242-243
track-to-track seekspeed, 242-243
transfer rates, 243EAs (extended
attributes), 236Ext2 file system, 5, 30, 253
block allocation, 254block groups, 253creating, 255-256directories, 253-254Ext3 extensions, 256inodes, 253layout analysis, 424-430relationships, 254upgrading, 258utilities, 258-259
Ext3 file system, 5external journal
devices, 258kernel configuration
support, 256partitioning, 257tuning, 256, 436-440utilities, 258-259
extents, 235external logs, 423FFSB (flexible file system
benchmark), 409FHS (Filesystem Hierarchy
Standard), 13file synchronization,
246-248fragmentation, 235, 246I/O, measuring, 446-452IBM JFS (Journaled File
System), 5implementation, 5,
233-241inodes, 235JFS (Journaled File
System), 265-266comparison list, 274creating, 266-267
directories, 265dynamic inode
allocation, 265extent-based addressing
structures, 265external logs, 267kernel configuration
support, 266layout analysis, 430-431mounting, 240, 267transactions, 238-239tuning, 266, 268,
442-443utilities, 268
kernel parameters,513-514
layouts, 423logical blocks, 234logical volumes, 235LVM (Linux Volume
Manager), 30meta data, 235mk fs command, 234network file system
protocols, 345-350proc file system, 21,
508-509memory utilization,
70-71RAID, 30-31raw disk I/O, 251-252ReiserFS, 5, 259-260
creating, 261-262external logs, 262kernel configuration
support, 260layout analysis, 432-434mounting, 262-263tuning, 260, 264,
440-441utilities, 264
selecting, 5super blocks, 236sysfs, 509tuning, 234, 436
528 Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 528
VFS (virtual file system), 30
VGs (volume groups),31-32
XFS (Next-Generation FileSystem), 5, 268-269
allocation groups, 269creating, 270-271external logs, 271fullness, 271kernel configuration
support, 269layout analysis, 435mounting, 271-272partitions, 269tuning, 270-272,
443-445utilities, 272-273
file-max parameter (kernel), 513
file-nr parameter (kernel), 513
file sizes, increasing, 238Filesystem Hierarchy
Standard (FHS). See FHS(Filesystem HierarchyStandard)
Flash web servers, tuning, 339flexible file system benchmark
(FFSB), 409forced file synchronization, 248FORTRAN programming
language, 309Forward Acknowledgement
(FACK), TCP,enabling, 285
forwarding parameter (kernel), 517
fragmentation, file systems,235, 246
front_merges parameter (I/O scheduler), 221
fsck.ext3 utility (Ext3 file system), 259
functionsasynchronous I/O, 250file synchronization, 247
Ggcc (GNU Compiler
Collection) compiler,301, 309
tuning options, 303-304gc_stale_time parameter
(kernel), 516GFS, 348Gigabit Ethernet, tuning,
Netperf3, 471-472global memory, databases,
365-366GNU C Library (GLIBC)
asynchronous I/O interface, 372
GPL (GNU General PublicLicense), Linux kernel, 19
gprof command, 303grain locking, processors, 29gtop command, CPU
utilization, 65-67Gunther, Harvey, 505
HHA (high availability)
clusters, 43-45hard drives. See diskshardware
analysis methodologies, 175application servers,
387-388IBM zSeries mainframes, 46NUMA servers, 51
hdparm command, driveinformation, viewing,243-246
heterogeneousness,application servers, 379
hierarchiesNUMA servers, 51Processes, viewing, 88, 90
high availability (HA) clusters, 43-45
high bandwidth interconnect,NUMA servers, 49
high-performance clusters(HPCs), 43-44
highmem interface, 201hold time accounting, JLM
(Java Lock Monitor),125-128
home partition, placement,4-5
horizontal clustering,application servers, 393
hostname parameter (kernel), 511
hot_list_length parameter(kernel), 515
HPCs (high-performanceclusters), 43-44
HTML generators, 376HTTP (HyperText Transfer
Protocol), 331ISO layering model, 333requests, 332-333
byte range requests, 333responses, 331-333
chunked encoding, 333WebDAV extensions, 347
huge TLB page support, 9hyperthreading application
servers, 504
II/O
buses, 41databases, 370
asynchronous I/O,371-372
block size I/O, 372bounce buffers, 370direct I/O, 372raw I/O, 371request locks, 373tuning, 363vectored I/O, 371
529Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 529
devices, 35addressing, 229-230
elevators, 9file I/O, 322-323file systems
asynchronous I/O,249-250
measuring, 446-452operations, 246
IBM zSeries mainframes, 47-48
raw disk I/O, file systems, 251-252
request locks,databases, 373
utilization, monitoring,73-78
I/O schedulers, 217-219, 407AS (anticipatory I/O
scheduler), 222-228,415-416
deadline behavior,416-417
decayed frequencytables, 224
lowest logical blockinformation, 226
positioning time, 224read anticipation
process, 227-228tuning, 224-225
benchmarks, 408-409CFQ (Completely Fair
Queuing) I/O scheduler, 225
tuning, 417-420deadline I/O schedulers,
219-2208-way NUMA RAID setup,
benchmark, 412-414noop I/O scheduler, 226performance issues,
226, 409performance rankings,
reshuffling, 420
pools of requests, 223single-CPU single-disk
setup, benchmark,410-411
16-way RAID-0 setup,benchmark, 414-415
tuning, 221-222I/O subsystem, 217
I/O schedulers, 217-219AS (anticipatory
I/O scheduler),222-228
CFQ (Completely FairQueuing) I/Oscheduler, 225
deadline I/O schedulers, 219-220
noop I/O scheduler, 226performance issues, 226tuning, 221-222Trade3 benchmark,
commercial workload, 481-504
integration, lack of, 217MPIO (Multipath I/O), 41performance issues,
228-229servers, 40-41
IBM, 343application servers, 377JFS (Journaled File
System), 5, 239, 265Netperf3, 456WebSphere Application
Server, 377, 481-504zSeries mainframes, 45-48
ICMP, kernel parameters,515-516
icmp_echo_ignore_all parameter (kernel), 516
icmp_echo_ignore_broadcastsparameter (kernel), 516
icmp_ignore_bogus_error_responses parameter(kernel), 516
icmp_ratelimit parameter(kernel), 515
icmp_ratemask parameter(kernel), 515
IDE hard drives, 243-246identifiers, IPC (interprocess
communication), 292identity mapped segment
(virtual memory). Seekernel image section (virtual memory), 195
igmp_max_membershipparameter (kernel), 516
init process, initializationtable, 12-16
initializationBSD, 12-16init process, 12-16System V, 12-16
initialization table, 13-14BSD initab, Slackware,
14-15init process, 12-16System V initab, Red Hat,
15-16inode-nr parameter
(kernel), 514inode-state parameter
(kernel), 514inodes
Ext2 file system, 253file systems, 235JFS (Journaled File
System), 265installation, Linux, 3, pre-
installation planning, 3-8instruction tracing, PI
(Performance Inspector),103, 110-111
integration, I/O subsystems,lack of, 217
interactive tasks, 192-194INTERACTIVE_DELTA
parameter (scheduler),tuning, 193
530 Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 530
interactivity, applicationservers, 379
interconnects, NUMAservers, 50, 52
interfacesAPIs (application
programming interfaces), 21
highmem interface, 201information, displaying, 82kernel, 20procfs, 508-509sysctl, 507-508sysfs, 509
Intermezzo, 347internal fragmentation, file
systems, 235internal transfer rates, data
movement, 243Internet Explorer, 331interprocess communication
(IPC). See IPC (inter-process communication)
interrupt handlers, 25interrupts, monitoring
Above Idle tool (PI),104-105
sar command, 68-69interval parameter
(bdflush), 249IOmeter benchmarks, 152iostat command, I/O
monitoring, 75-76,446-452
IOzone benchmarks, 152IP fragmentation, kernel
parameters, 519IPC (interprocess
communication), 25, 289FIFOs, 289identifiers, 292message queues, 289
parameters, 295-296parameters, modifying,
298-299
pipes, 26, 289, 299semaphores, 27-28, 289,
292-294shared memory segments,
289, 297-298signals, 25SysV (System V), 26,
289-292ipconfig command, 82ipcs command, 289-291ipfrag_high_thresh parameter
(kernel), 520ipfrag_low_thresh parameter
(kernel), 520ipfrag_time parameter
(kernel), 519ip_autoconfig parameter
(kernel), 519ip_default_ttl parameter
(kernel), 519ip_dynaddr parameter
(kernel), 520ip_forward parameter
(kernel), 519ip_local_port_range
parameter (kernel), 520ip_nonlocal_bind parameter
(kernel), 519ip_no_pmtu_disc parameter
(kernel), 519IRQ, affinity, 462-464ISO layering model, 333
JJ2EE (Java 2 Enterprise
Edition), 384-385application servers, 376,
377, 384-385enterprise
application, 383performance
requirements,377-390
software performancestack, 382-383
clustering, 391-394commercial workload,
480-481file systems, 390hardware, 387-388JVM (Java Virtual
Machine), 386,388-389
memory usage, 389native code, 386networking, 389SMP scaling, 390-391string manipulization, 390synchronization, 389threads, 389topologies, 394-398tuning, 398-402web servers, 390
Jamison, Wilfred C., 505Java
applets, 376application servers, 376benchmarks, 161-163JLM (Java Lock Monitor),
hold time accountingand contention statistics, 125-128
JPROF tool, JIT address-to-name resolution, 112
JVM (Java VirtualMachine), 376
servlets, 376Java Database Connections
(JDBCs), 376Java Messaging Service
(JMS), 377Java Transaction Architecture
(JTA), 377JBoss application servers, 377JDBC (Java Database
Connections), 376JFS (Journaled File System),
5, 237-241, 265-266creating, 266-267
531Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 531
directories, 265dynamic inode
allocation, 265extent-based addressing
structure, 265external logs, 267kernel configuration
support, 266layout, analyzing, 430-431mounting, 240, 267tuning, 266-268, 442-443transactions, 238-239utilities, 268
jfs_mkfs command, 266JIT (just-in-time) compilers,
JVM (Java VirtualMachine), 386
JLM (Java Lock Monitor) tool(Performance Inspector),102, 125-128
JMS (Java Messaging Service), 377
journaling file systemscomparison list, 274Ext2 file system, 253
block allocation, 254creating, 255-256directories, 254Ext3 extensions, 256inodes, 253relationships, 254tuning, 256upgrading, 258utilities, 258
Ext3 file systemexternal journal
devices, 258kernel configuration
support, 256partitioning, 257utilities, 258
JFS (Journaled FileSystem), 265-266
creating, 266-267directories, 265
dynamic inode allocation, 265
extent-based addressingstructures, 265
external logs, 267kernel configuration
support, 266layout, analyzing,
430-431mounting, 267tuning, 266-268,
442-443utilities, 268
ReiserFS, 259-260creating, 261-262external logs, 262kernel configuration
support, 260mounting, 262-263tuning, 260, 264utilities, 264
XFS (Next-Generation FileSystem), 268-269
allocation groups, 269creating, 270-271external logs, 271fullness, 271kernel configuration
support, 269mounting, 271-272partitions, 269tuning, 270, 272utilities, 272-273
JPROF tool (PerformanceInspector), 102, 112
JTA (Java TransactionArchitecture), 377
JVM (Java Virtual Machine),376, 386
application servers,388-389
commercial workload,499-501
thread dumps, 492-495
Kkeep-alive management,
TCP, kernel parameters,286-287
kernelarchitecture, 20-23configurable features, 9file systems, 29-32IPC (Interprocess
Communication)mechanisms, 25-28
memory management,21-23
microkernel operating systems, compared, 20
modular design, 35modules, 20monolithic aspects, 20network performance,
enhancements,457-468
networks, parameter tuning mechanisms,278-287
open source, 19organization, 20parameters, 509
CONFIG, 517debugging, 511file system, 513-514ICMP, 515-516IP fragmentation, 519NEIGHBOR, 516net core, 515network, 515-519processes, 510profiling, 511routing, 517shared memory, 510signals, 510system, 511TCP, 518-519virtual memory,
511-513
532 Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 532
performance benchmarks,179-184
proc file system, 21parameter tuning,
508-509process management, 24
context switching,24-25
kernel threads, 24process scheduling, 24processes, 24tasks, 24threads, 24
responsibilities, 20services, 20SMP (Symmetrical
Multiprocessing) system, 28-29
sysfs interface, parametertuning, 509
systctl interface, parametertuning, 507-508
system calls, 20variables, 277
kernel address spaces, 21, 199kernel image section (virtual
memory), 195, 200kernel module section
(virtual memory), 199kernel threads, 24Krishnamurthy, Balachander,
333, 341kswapd parameter
(kernel), 512
Llacency ratios, NUMA
servers, 52large pages, support, 206layers, BIO (block I/O) layer,
I/O schedulers, 217-226layouts
Ext2/Ext3 file systems,analyzing, 424-430
file systems, 423JFS (Journaled File
System), analyzing,430-431
ReiserFS, analyzing,432, 434
XFS, analyzing, 435less command, 26levels
interactive tasks,raising, 192
RAID, 31libraries, dynamic link
libraries, 327-328Linux
evolution of, 19installing, 3
pre-installation planning, 3-8
processor support, 19UNIX, compared, 19version 2.6
new features, 33Linux network stacks, 455list symbol mode reports
(OProfile), 96listeners (thread), 315LMbench, 134-141load balancing
application servers, 397databases, 363-365schedulers, 191
locality of reference,caches, 40
locksopportunistic locking,
clients, 352-353SMP (Symmetrical
Multiprocessing) system, 28-29
locktime parameter (kernel), 516
log analysis tools, web servers,340
logger facility, 12logging devices, databases,
367-368logical blocks, file systems, 234logical volumes, file
systems, 235logrotate command, 11logs
customized logging, 12external logs, 423finding, 11logger facility, 12rotating, 11/var/log/messages logs, 11/var/log/XFree86.0.logs, 11viewing, 10
loosely coupled multiprocess-ing systems, 28
lower_zone_protection parameter (virtual memory), 210
lowest logical block information, AS (anticipatory I/O scheduler), 226
lsattr utility (Ext2 file system), 259
Lustre, 348LVM (Linux Volume
Manager), 30
Mmail servers, benchmarks, 409management policies,
schedulers, 1872.6 Linux scheduler,
189-191load balancing, 191NUMA (non-uniform
memory access), 188single processor
systems, 187SMP (symmetric
multiprocessing), 188
533Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 533
SMT (symmetric multithreading), 189
tuning, 192-193mapping
memory, 22-23ObjRMAP (object-based
reversed mapping), 206rmap (reversed
mapping), 205max-readahead parameter
(kernel), 511max_delay parameter
(kernel), 517max_map_count parameter
(kernel), 511max_size parameter
(kernel), 517MAX_SLEEP_AVG
parameter (scheduler),tuning, 193
MAX_TIMESLICE parameter(scheduler), tuning, 193
mcast_solicit parameter (kernel), 516
mc_forwarding parameter(kernel), 517
measurements, benchmarks,177-179
memorycaches, 39-40
locality of reference, 40global memory, databases,
365-366managing, databases,
369-370memory management,
21-23, 283-284nodes, 22NUMA (non-uniform
memory access),schedulers, 188
processes, tracing, 88, 90servers, 39-40
shared memorykernel parameters, 510semaphores, 27
utilization, monitoring,69-73
virtual memory, 195address spaces, 196-199address translation
process, 204-205area structures, 198-199CPU scheduler, 212-214highmem interface, 201kernel image section,
195, 200kernel module
section, 199kernel parameters,
511-513largepage support, 206ObjRMAP (object-
based reversedmapping), 206
page allocation, 207page replacement, 207page tables, 203, 205paging, 201-203processes, 195rmap (reversed
mapping), 205slab allocators, 208swapping, 201-203tuning, 209-212
memory management, 21-23,283-284
memory mapping, 22-23memory usage, application
servers, 389message queues, 289
IPC (interprocess communication),parameters, 295-296
System V IPC, 27message_burst parameter
(kernel), 515
message_cost parameter (kernel), 515
metadatabenchmarks, 409clients, 353file systems, 235
microbenchmarks, 133-134disk benchmarks, 150
Bonnie/Bonnie++benchmarks,150-152
dbench, 155-159IOmeter benchmarks,
152IOzone benchmarks,
152Penguinmeter
benchmarks, 153tiobench, 153-155
network benchmarksdbench, 159Netperf, 159-160SPEC SFS, 160
operating system benchmarks, 134
AIM7, 142AIM9, 143, 147LMbench, 134-141Reaim, 147SPEC SDET, 147-150
microkernel operating systems, 20
min-readahead parameter(kernel), 511
min_delay parameter (kernel), 517
min_free_kbytes parameter(virtual memory), 210
MIN_TIMESLICE parameter(scheduler), tuning, 193
mixing processors, 38mk fs command, file systems,
creating, 234-237, 424mke2fs utility (Ext2 file
system), 259
534 Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 534
mkesfs command,Ext2/Ext3 file systems,creating, 255-256
mkfs.ext3 utility (Ext3 filesystem), 259
mklost+found utility (Ext2file system), 259
mkreiserfs utilitiy (ReiserFS), 264
mk_commands utility(Ext2/Ext3 file system), 259
modular design, kernel, 20, 35monitoring performance,
58-59, 131analysis methodology,
175-179benchmarking
methodology casestudy, 175
CPU utilization, 59-69I/O utilization, 73-78kernel performance
benchmarks, 179-184memory utilization, 69-73network utilization, 78-83numerical analysis, 174simulators, 174system tracing, 87-88
OProfile command,93-101
PI (PerformanceInspector),102-112, 125-130
requirements, 88strace command, 90-93top utility, 88-90
tracing, 173workload characterization,
174Moore’s Law, address
spaces, 200Morton, Andrew, 275
mountingJFS (Journaled File
System), 267ReiserFS, 262-263XFS (Next-Generation File
System), 271-272Mozilla, 331MPIO (Multipath I/O), 41
NUMA servers, 53msgmax parameter
(kernel), 510msgmnb parameter
(kernel), 510msgmni parameter
(kernel), 510multidomain topology,
application servers, 398Multipath I/O (MPIO). See
MPIO (Multipath I/O)multiprocessing
clusters, 38, 43-45HA (high availability)
clusters, 43-45HPCs (high-perfor-
mance clusters), 43NUMA (Non-Uniform
Memory Architecture),38, 48-54
hardware, 51hierarchy, 51high bandwidth
interconnect, 49interconnects, 50-52lacency ratios, 52MPIO (Multipath
I/O), 53nodes, 50-51timers, 54
processor mixing, 38SMP (Symmetrical
Multiprocessing),36-39
mutual exclusion, 36schedulers, 188topologies, 37-38
multiprocessor systems, 28-29mutual exclusion, shared
system resources, 36
Nnamed pipes, 26, 289Namesys, ResierFS, 239NAPI (network device driver
API), 464-466NAS (network attached
storage), 344-345native code, application
servers, 386ndirty parameter
(bdflush), 249NEIGHBOR kernel
parameters, 516net core, kernel
parameters, 515NetBench, 456, 468-470netdev_max_backlog
parameter (kernel),280, 515
Netperf benchmarks, 159-160Netperf3 microbenchmark, 456
Gigabit Ethernet tuning,471-472
netstat command, networkutilization, monitoring,80-83
network attached storage(NAS). See NAS (networkattached storage)
network benchmarks,159-160
network file system protocols,345-350
network initialization,Slackware, 15
Network Operating Systems(NOS), 343
network protocol stack,277-278
network storage servers, 344
535Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 535
networksapplication servers, 389kernel parameters,
515-519performance, 455, 468
benchmarks, 456-457IRQ affinity, 462-464kernel enhancements,
457-468NAPI (network
device driver API),464-466
NetBench, 468-470Netperf3 benchmark,
471-472process affinity, 462SendFile API, 458-460SPECWeb99 benchmark,
475-476TOE (TCP Offload
Engine), 467-468TSO (TCP Segmentation
Offloading),460-462
VolcanoMark bench-mark, 473-474
Zerocopy, 458-459tuning
kernel parameter tuning mechanisms,278-287
network protocol stack,277-278
utilization, monitoring,78-83
nfract parameter (bdflush), 249
nfract_stop_bdflush parameter (bdflush), 249
nfract_sync parameter(bdflush), 249
NFS (Network File System),346-347
client/server implementa-tions, 350
tuning, 355-356nfsstat command, network
utilization, monitoring, 83NICs, Gigabit Ethernet NICs,
tuning, 471-472nodes
device nodes, 32memory, 22NUMA servers, 50-51
non-interactive tasks,starving, 194
Non-Uniform MemoryArchitecture (NUMA). See NUMA(Non-Uniform MemoryArchitecture)
noop I/O scheduler, 226NOS (Network Operating
Systems), 343Novell, 343nr_pdflush_threads
parameter (virtual memory), 210
NUMA (Non-UniformMemory Architecture),22, 38, 48-54
hardware, 51hierarchy, 51high bandwidth
interconnect, 49interconnects, 50-52lacency ratios, 52MPIO (Multipath I/O), 53nodes, 50-51schedulers, 188timers, 54
numerical analysis, 174
OO(1) scheduler column
(NetBench), 469objects, reference counted
objects, 197ObjRMAP (object-based
reversed mapping), 206
OLTP (online transactionprocessing), 164
databases, 362logging devices, 367-368
opcontrol command(OProfile), 94-95
open source, kernel, 19Open Source Development
Lab (OSDL), Reaimbenchmarks, 147
operating system benchmarks, 134, 173
AIM7, 142AIM9, 143, 147analysis methodology,
175-179Linux kernel performance
benchmarks, 179-184LMbench, 134-141methodology case
study, 175numerical analysis, 174Reaim, 147simulators, 174SPEC SDET, 147-150tracing, 173workload characterization,
174operating systems. See also
kernelkernel performance
benchmarks, 179-184microkernel operating
systems, 20NOS (Network Operating
Systems), 343performance evaluation
methodologies, 173analysis methodology,
175-179benchmarking
methodology casestudy, 175
numerical analysis, 174simulators, 174
536 Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 536
tracing, 173workload characteriza-
tion, 174opportunistic locking, clients,
352-353OProfile tool
counter, 94opcontrol, 94-95oprofpp, 96op_merge, 101op_time, 97op_to_source, 98system tracing, 93-101
optmem_max parameter(kernel), 281, 515
Oracle, application servers, 377
Oracle Applications StandardBenchmark, 168
Orion, application servers, 377
OSDL (Open SourceDevelopment Lab),Reiam benchmarks, 147
osrelease parameter (kernel), 511
ostype parameter (kernel), 511
overcommit_memory parameter (virtual memory), 211
overcommit_ratio parameter(virtual memory), 211
overhead (locking),processors, 29
Ppackets, Ethereal packet
capture tool, 334-335PAE (Physical Address
Extension), 22page frame maps, 200page tables, 203, 205page-cluster parameter
(kernel), 512
page-cluster parameter (virtual memory), 211
pagesets, 207pagetable_cache parameter
(kernel), 512paging
virtual address spaces,201-203
virtual memory, 23parameters
IPC (interprocess communication),298-299
kernel, 509CONFIG, 517debugging, 511file system, 513-514ICMP, 515-516IP fragmentation, 519NEIGHBOR, 516net core, 515network, 515-519network tuning, 278-287processes, 510profiling, 511routing, 517shared memory, 510signals, 510system, 511TCP, 518-519virtual memory, 511-513
message queues, 295-296semaphores, 292-294shared memory segments,
297-298parents, sleep averages,
tuning, 192PARENT_PENALTY
parameter (scheduler),tuning, 193
partitionsExt3 partitions,
creating, 257placement, 4-5XFS (Next-Generation File
System), 269
pass-by-reference, applicationservers, 502
PCI I/O buses, 41Penguinometer
benchmarks, 153per-thread time (PTT). See
PTT (per-thread time)performance
application servers,requirements, 377-390
enterprise applicationsclustering, 391-394SMP scaling, 390-391topologies, 394-398tuning, 398-402
evaluation methodologies,173
analysis methodology,175-179
benchmarking methodology casestudy, 175
numerical analysis, 174simulators, 174tracing, 173workload characteriza-
tion, 174file systems, disks, 241-246I/O schedulers, 226, 409
16-way RAID-0 setup,414-415
8-way NUMA RAIDsetup, 412-414
AS scheduler, 415-417CFQ I/O scheduler,
tuning, 417-420single-CPU single-disk
setup, 410-411I/O subsystem, 228-229kernel performance
benchmarks, 179-184networks, 455, 468
benchmarks, 456-457IRQ affinity, 462-464kernel enhancements,
457-468
537Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 537
NAPI (network device driver API),464-466
NetBench, 468-470Netperf3 benchmark,
471-472process affinity, 462SendFile API, 458-460SPECWeb99 benchmark,
475-476TOE (TCP Offload
Engine), 467-468TSO (TCP Segmentation
Offloading),460-462
VolcanoMark bench-mark, 473-474
Zerocopy, 458-459print servers, 358web servers, tuning,
337-340workloads, benchmarking,
132-143, 147-168performance analysis, 58-59
CPU utilization, 59-69I/O utilization, 73-78memory utilization, 69-73network utilization, 78-83system tracing, 87-88
OProfile command,93-101
PI (PerformanceInspector),102-112, 125-130
requirements, 88strace command, 90-93top utility, 88-90
performance counters,PI (PerformanceInspector), 103
Performance Inspector (PI).See PI (PerformanceInspector)
performance monitoring, 131performance tuning.
See tuning
Physical Address Extension(PAE), 22
physical memory banks, 22PI (Performance Inspector),
102-112, 125-130Above Idle tool, 102-105dynamic kernel
patches, 103instruction tracing, 103,
110-111JLM (Java Lock Monitor)
tool, 102, 125-128JPROF tool, 102, 112performance counters, 103pipcntr tool, 129post tool, 129ptt tool, 130pttstats tool, 102, 105,
107, 130swtrace tool, 128-129System Trace Data
Collection tool, 102tprof tool, 107, 110
pipcntr tool (PerformanceInspector), 129
pipes, 289IPC (Interprocess
Communication),26, 299
named pipes, 26planning
file systems, 234pre-installation planning,
Linux, 3-8point of sale (POS)
terminals, 164policies, resource
management policies,schedulers, 187-193
pools of requests, I/O schedulers, 223
positioning time,processes, 224
post tool (PerformanceInspector), 129
PostMark application benchmarks, 164
pre-installation planning,Linux, 3-8
print servers, 343performance, 358
printk parameter (kernel), 511PRIO_BONUS_RATIO
parameter (scheduler),tuning, 194
proc file system, 21kernel parameters, tuning,
508-509memory utilization, 70-71virtual memory
parameters, tuning, 209process affinity column
(NetBench), 470process management, 24-25processes, 24-25
affinity, 462hierarchies, viewing, 88, 90IPC (interprocess
communication), 289dynamic modification,
298-299FIFOs, 289identifiers, 292message queues, 289,
295-296pipes, 26, 289, 299semaphores, 27-28,
289-294shared memory
segments, 289,297-298
signals, 25SysV (System V), 26,
289-292kernel parameters, 510managing, databases,
368-369positioning time, 224read anticipation process,
AS (anticipatory I/Oscheduler), 227-228
538 Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 538
scheduling, 24timeslices, 25virtual memory
address spaces, 196-197address translation
process, 204-205processor affinity, SMP
(SymmetricalMultiprocessing) system,29
processorsLinux, support, 19memory caches, 39-40monitoring, Above Idle
tool (PI), 104-105multiprocessing
clusters, 38, 43-45NUMA (Non-Uniform
MemoryArchitecture), 38,48-54
processor mixing, 38SMP (Symmetrical
Multiprocessing),36-39
registers, 39schedulers
2.6 Linux scheduler,189, 191
load balancing, 191NUMA (non-uniform
memory access),188
single processor systems, 187
SMP (SymmetricalMultiprocessing)system, 188
SMT (symmetric multi-threading), 189
tuning, 192-193service processors, 35SMP (Symmetrical
Multiprocessing) system, 28-29, 188
utilization, monitoring,59-69
word sizes, 39procfs interface, kernel
parametersCONFIG, 517debugging, 511file system, 513-514ICMP, 515-516IP fragmentation, 519NEIGHBOR, 516net core, 515networks, 515-519processes, 510profiling, 511routing, 517shared memory, 510signals, 510system, 511TCP, 518-519tuning, 508-509virtual memory, 511-513
prof command, 302profiling
applications, 302-303kernel parameters, 511
programming languages,choosing, 309
programs, designing, 305-309clients, 323-324code, 309file I/O, 322-323servers, 309-310sockets, 311-314synchronization, 318-321threads, 315-317timing routines, 310-311
protocol layering, clients,351-352
protocol stack (network),277-278
protocolsnetwork file system
protocols, 345-350network protocol stack,
277-278
proxy_arp parameter (kernel), 517
proxy_delay parameter (kernel), 516
proxy_qlen parameter (kernel), 516
ps command, memory utilization, 71-72
PTT (per-thread time), 102monitoring, pttstats tool
(PI), 105, 107ptt tool (Performance
Inspector), 130pttstats tool (Performance
Inspector), 130Pulavarti, Badari, 507Python programming
language, 309
Q-Rqueue length, databases, 363
RAID (Redundant Array ofInexpensive Disks), 7,30-31
configuring, 7-8levels, 31multiple hard drives, 4
raw I/Odatabases, 371file systems, 251-252
read anticipation process,AS (anticipatory I/Oscheduler), 227-228
read buffers, TCP, kernelparameters, 281-283
read-only clients, 353-354read_batch_expire parameter
(AS I/O scheduler), 225read_expire parameter (AS
I/O scheduler), 224read_expire parameter (I/O
scheduler), 221Reaim benchmarks, 147real-root-dev parameter
(kernel), 511
539Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 539
Redundant Array ofInexpensive Disks(RAID). See RAID(Redundant Array ofInexpensive Disks)
reentrancy, 310reference counted objects, 197registers, processors, 39ReiserFS, 5, 239, 259-260
creating, 261-262external logs, 262kernel configuration
support, 260layout, analyzing, 432-434mounting, 262-263reiserfsck utilitiy, 264tuning, 260, 264, 440-441utilities, 264
reiserfsck utilitiy (ReiserFS), 264
relationships, Ext2 file system, 254
reliability, IBM zSeries mainframes, 47
replacement policy, virtualaddress spaces, 202-203
replacing pages, 207requests (web), 332-333
application servers, 380availability, 378
byte range requests, 333I/O request locks,
databases, 373resize2fs utility (Ext2 file
system), 259resize_reiserfs utility
(ReiserFS), 264resource management
policies, schedulers, 1872.6 Linux scheduler,
189-191load balancing, 191
NUMA (non-uniformmemory access), 188
single processor systems, 187
SMP (symmetric multiprocessing), 188
SMT (symmetric multithreading), 189
tuning, 192-193response times, FFSB
(flexible file systembenchmark), 410
responses (web), 331-333chunked encoding, 333databases, tuning, 363
responsibilities, kernel, 20retrans_time parameter
(kernel), 516Rexford, Jennifer, 333, 341rmap (reversed mapping), 205rmem_default parameter
(kernel), 515rmem_max parameter
(kernel), 280, 515rmen_default parameter
(kernel), 280root partition, placement, 4-5rotating logs, 11rotational speed, disks,
242-243routing kernel parameters, 517rp_filter parameter
(kernel), 517rtsig-max parameter
(kernel), 510rtsig-nr parameter
(kernel), 510run rules, benchmarks, 176run.itrace command, 110-111runlevels, Slackware, 14runtime information
collection, tracing, 173
SSACK (Selective
Acknowledgements),TCP, enabling, 285
Samba servers, tuning,356-357
SANs (storage area networks), 344
NAS (network attachedstorage), compared, 345
SAP Standard ApplicationBenchmark, 168
sar commandCPU utilization, 67-69I/O utilization,
monitoting, 76, 78scalability, application
servers, 378SMP scaling, 390-391
schedulers, 1872.6 Linux scheduler,
189, 191CPU scheduler, 212-214I/O schedulers,
217-219, 40716-way RAID-0 setup,
414-4158-way NUMA RAID
setup, 412-414AS (anticipatory
I/O scheduler),222-228
AS scheduler, 415-417benchmarks, 408-409CFQ (Completely Fair
Queuing) I/Oscheduler, 225
CFQ I/O scheduler,417-420
deadline I/O schedulers,219-220
noop I/O scheduler, 226
540 Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 540
performance, 409performance issues, 226pools of requests, 223single-CPU single-disk
setup, 410-411tuning, 221-222
load balancing, 191NUMA (non-uniform
memory access), 188single processor
systems, 187SMP (symmetric
multiprocessing), 188SMT (symmetric
multithreading), 189thread schedulers, 316tuning, 192-193
scheduling processes, 24SCSI technology, 41SDET benchmarks, 147-150secure_redirects parameter
(kernel), 517seek_cost parameter (I/O
scheduler), 221Selective Acknowledgements
(SACK), TCP,enabling, 285
sem parameter (kernel), 510semaphores, 289, 318-321
IPC (InterprocessCommunication),27-28
parameters, 292-294SendFile API, network
performance, 458-460SendFile/Zerocopy column
(NetBench), 469send_redirects parameter
(kernel), 517sequential read
benchmarks, 409sequential read performance,
AS scheduler, 415-416sequential write
benchmarks, 409
servers, 35application servers,
375-376availability, 378clustering, 391-394commercial workload
tuning, 479-480concurrency, 379connection pools,
502-503data integrity, 378databases, support, 378distribution, 379enterprise
application, 383failover, 378fault tolerance, 378file systems, 390hardware, 387-388heterogeneousness, 379hyperthreading, 504interactivity, 379J2EE, 384-385J2EE (Java 2 Enterprise
Edition), 376-377Java, 376JVM (Java Virtual
Machine), 386-389memory usage, 389multiple-applications-
in-one, 380multiple-services-in-
one, 380native code, 386networking, 389pass-by-reference, 502performance
requirements,377-390
requests, 380scalability, 378security, 378SMP scaling, 390-391software performance
stack, 382-383
string manipulation, 390synchronization, 389thread pools, 501-502threads, 389topologies, 394-398transactions, 380tuning, 398-402vendor server
portability, 378vendors, 380web servers, 390
clusters, 38, 43HA (high availability)
clusters, 43-45HPCs (high
performance clusters), 43
database servers, 361designing, 309-310DNS servers, 35enterprise servers, 42file servers, 343
benchmarks, 408NAS (network attached
storage), 344network file system
protocols, 345-350tuning, 354-358
I/O subsystems, 40-41mail servers,
benchmarks, 409memory, 39-40multiprocessing
clusters, 38, 43-45NUMA (Non-Uniform
MemoryArchitecture), 38,48-54
processor mixing, 38SMP (Symmetrical
Multiprocessing),36-39
topologies, 37-38
541Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 541
network storage servers, 344
NUMA servers, 38, 48-54hardware, 51hierarchy, 51high bandwidth
interconnect, 49interconnects, 50, 52lacency ratios, 52MPIO (Multipath
I/O), 53nodes, 50-51timers, 54
print servers, 343performance, 358
processor mixing, 38Shark servers, 48SMP servers, 36-39, 369
mutual exclusion, 36topologies, 37-38
systemsblades, 48IBM zSeries
mainframes, 45-48NUMA (Non-Uniform
MemoryArchitecture), 48-54
web servers, 331architecture models,
336-337benchmarks, 408concurrency, 336dynamic content
generation, 331Ethereal packet capture
tool, 334-335HTTP (HyperText
Transfer Protocol), 331
network behavior, 333requests, 332-333responses, 331-333transactions, 335-336
tuning, 337-340service processors, 35services, kernel, 20servlets (Java), 376SFS benchmarks, 160SGI, XFS (Next-Generation
File System), 239,268-271
sh command, 339shared memory
kernel parameters, 510semaphores, 27
Shared MemoryMultiprocessing (SMP).See SMP (Shared MemoryMultiprocessing)
shared memory segments, 289IPC (interprocess
communication)parameters, 297-298
shared system resources,mutual exclusion, 36
shared_media parameter(kernel), 517
Shark servers, 48Sharoff, Narasimha, 507shmall parameter (kernel), 510shmmax parameter
(kernel), 510shmni parameter (kernel), 510signals
IPC (InterprocessCommunication), 25
kernel parameters, 510simulators, 174slab allocators, 208Slackware, 14-15sleep averages, tuning,
scheduler, 192-193SMB/CIFS network file
system, 346smblog=1 column
(NetBench), 469
SMP (SymmetricalMultiprocessing) system,28, 36-39
application servers,scaling, 390-391
cache coherency, 29concurrency, 28data serialization, 28locks, 28-29mutual exclusion, 36processor affinity, 29schedulers, 188servers, 369topologies, 37-38
SMT (symmetric multithreading),schedulers, 189
sockets, 311, 313-314software
performance evaluationmethodologies, 173
analysis methodologies,175-179
benchmarking methodology casestudy, 175
kernel performancebenchmarks,179-184
numerical analysis, 174simulators, 174tracing, 173workload characteriza-
tion, 174tracing, swtrace tool
(PerformanceInspector), 128-129
software performance stacks,application servers,382-383
Solaris, 201somaxconn parameter
(kernel), 281
542 Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 542
SPEC (Standard PerformanceEvaluation Corporation),185
SPEC SDET benchmarks,147-150
SPEC SFS benchmarks, 160SPECjAppServer
benchmarks, 168SPECjvm benchmarks, 163SPECweb benchmarks,
166-168SPECweb SSL
benchmarks, 166-168SPECWeb99
benchmark, 456content case studies,
475-476SPECweb99 benchmarks,
results, 184SPECWeb99 workload
generators, 340spinlocks column
(NetBench), 470starting block numbers, 235STARVATION_LIMIT
parameter (scheduler),tuning, 194
starving non-interactivetasks, scheduler, 194
status flags (file), setting, 247storage area networks
(SANs), 344NAS (network attached
storage), compared, 345strace command, system
tracing, 90-93strings, application
servers, 390struct page pointers, BIO
(block I/O) layer, 219subsystems (I/O), 217
integration, lack of, 217performance issues,
228-229
I/O schedulers, 217-226Sun Microsystems, Inc.,
Java, 376Sun ONE application
servers, 377super blocks, file systems, 236super-max parameter
(kernel), 514super-nr parameter
(kernel), 514sustained transfer rates, data
movement, 243swap partition, placement,
4-5swappiness parameter
(virtual memory), 211swapping
memory, 23virtual address spaces,
201-203switching, context switching,
24-25swtrace tool (Performance
Inspector), 128-129Symmetrical Multiprocessing
(SMP). See SMP(SymmetricalMultiprocessing)
Syn Queue length, TCP,controlling, 286
synchronizationapplication servers, 389file synchronization,
246-248semaphores, 318-321
synchronized I/O, 246sysctl command, kernel
parameters, modifying, 299sysctl interface, kernel
parametersCONFIG, 517debugging, 511file system, 513-514
ICMP, 515-516IP fragmentation, 519NEIGHBOR, 516net core, 515networks, 515-519processes, 510profiling, 511routing, 517shared memory, 510signals, 510system, 511TCP, 518-519tuning, 507-508virtual memory, 511-513
sysfs interface, kernel parameters, tuning, 509
sysrq parameter (kernel), 511system calls
kernel, 20tracing, strace command,
90-93system initialization
BSD, 12-16init process, 12-16initialization table, 13-14System V, 12-16
system initialization table(/etc/inittab), 12
system paramaters, 511system performance analysis,
58-59CPU utilization, 59-62
gtop command, 65-67sar command, 67-69top command, 65-67vmstat, 62-65
I/O utilization, 73-78memory utilization, 69-73network utilization, 78-83
System Trace Data Collectiontool (PerformanceInspector), 102
543Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 543
system tracing, 87-88OProfile command, 93-96,
98-99, 101PI (Performance
Inspector), 102-112,125-130
Above Idle tool, 102-105dynamic kernel
patches, 103instruction tracing, 103,
110-111JLM (Java Lock
Monitor) tool, 102,125-128
JPROF tool, 102, 112performance
counters, 103pipcntr tool, 129post tool, 129ptt tool, 130pttstats tool, 102,
105-107, 130swtrace tool, 128-129System Trace Data
Collection tool, 102
tprof tool, 107-110requirements, 88strace command, 90-93top utility, 88, 90
System V, 289BSD, compared, 12-16initialization table, Red
Hat, 15-16IPC (Interprocess
Communication), 26,290-292
system initialization, 12-16
Ttables
decayed frequency tables, 224
page frame maps, 200page tables, 203-205
targets, benchmarks,setting, 177
tasks, 24interactive tasks, 192-194non-interactive tasks, 194sleep averages, tuning, 193threads, 24timeslices, tuning, 193TSRUN
(TASK_RUNNABLE)state, 213
virtual memory, 195TCP (transport control
protocol)connection management,
kernel parameters,285-286
D-SACK, enabling, 285FACK (Forward
Acknowledgement),enabling, 285
keep-alive management,kernel parameters,286-287
kernel parameters, 518-519memory management,
kernel parameters,283-284
read/write buffers, kernelparameters, 281, 283
SACK (SelectiveAcknowledgements),enabling, 285
Syn Queue length,controlling, 286
window scaling,enabling, 284
TCP-W benchmarks, 166-168TCP/IP (transport control
protocol/Internet protocol), 277-278
kernel paramters, 281-287stacks, 455statistics, displaying, 82
tcp_app_win parameter (kernel), 518
tcp_dsack parameter (kernel),285, 519
tcp_fack parameter (kernel),285, 519
tcp_fin_timeout parameter(kernel), 518
tcp_keepalive_intvl parameter (kernel),287, 519
tcp_keepalive_probes parameter (kernel),287, 519
tcp_keepalive_time parameter (kernel),286, 519
tcp_max_orphans parameter(kernel), 518
tcp_max_syn_backlog parameter (kernel),286, 518
tcp_max_tw_buckets parameter (kernel), 518
tcp_mem parameter (kernel),283, 518
tcp_reordering parameter(kernel), 518
tcp_retries1 parameter (kernel), 519
tcp_retries2 parameter (kernel), 519
tcp_rfc1337 parameter (kernel), 518
tcp_rmem parameter (kernel), 281, 518
tcp_sack parameter (kernel),285, 519
tcp_stdurg parameter (kernel), 518
tcp_synack_retries parameter(kernel), 286
tcp_syn_retries parameter(kernel), 519
544 Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 544
tcp_timestamps parameter(kernel), 518
tcp_tw_reuse parameter (kernel), 518
tcp_window_scaling parameter (kernel),284, 518
tcp_wmem parameter (kernel), 282, 518
thread dumps, JVM (JavaVirtual Machine),492-495
thread listeners, 315thread pools, application
servers, 501-502thread schedulers,
212-214, 316threads, 24
application servers, 389default threads, virtual
memory, 195designing, 315-317hyperthreading, 504kernel threads, 24PTT (per-thread time),
monitoring, 105-107SMT (symmetric
multithreading)schedulers, 189
thread dumps, 493TSRUN
(TASK_RUNNABLE)state, 213
thread_max parameter (kernel), 510
three-tier topology,application servers, 395
tightly coupled multi-processing systems, 28
timers, NUMA servers, 54timeslices
processes, 25tuning, scheduler, 193
timing routines, 310-311tiobench, 153-155
TOE (TCP Offload Engine),467-468
Tomcat application servers, 377
top commandCPU utilization, 65-67system tracing, 88-90
topologiesapplication servers,
394-398multiprocessor systems,
37-38Torvalds, Linus, 19tprof command, 107, 110
JPROF reports,generating, 112
tracing runtime informationcollection, 173
tracing systems, 87-88OProfile command, 93-101PI (Performance
Inspector), 102-112,125-130
Above Idle tool, 102-105dynamic kernel
patches, 103instruction tracing, 103,
110-111JLM (Java Lock
Monitor) tool, 102,125-128
JPROF tool, 102, 112performance
counters, 103pipcntr tool, 129post tool, 129ptt tool, 130pttstats tool, 102, 105,
107, 130swtrace tool, 128-129System Trace Data
Collection tool, 102tprof tool, 107, 110
requirements, 88strace command, 90-93top utility, 88, 90
track-to-track seek speed,disks, 242-243
Trade3 benchmark,commercial workload,481-492, 496-499
connection pools, 502-503database I/O activity,
495-496hyperthreading, 504JVM (Java Virtual
Machine), 499-501pass-by-reference, 502thread dumps, 492-495thread pools, 501-502web servers, 491
transactionsapplication servers, 380journaled file systems,
238-240web servers, 335-336
transfer rates, disks, 243transport control protocol
(TCP). See TCP (transportcontrol protocol)
transport controlprotocol/Internet protocol(TCP/IP). See TCP/IP(transport control protocol/Internet protocol)
TSO (TCP SegmentationOffloading), networkperformance, 460-462
TSRUN (TASK_RUNNABLE)state, 213
tunable parameters,kernel, 509
CONFIG, 517debugging, 511file system, 513-514ICMP, 515-516IP fragmentation, 519NEIGHBOR, 516net core, 515network, 515-519processes, 510profiling, 511
545Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 545
routing, 517shared memory, 510signals, 510system, 511TCP, 518-519virtual memory, 511-513
tune command, file systems,tuning, 234
tune2fs utility (Ext2 file system), 259
tuningapplication servers, 398-402
commercial workload,489-504
AS (anticipatory I/Oscheduler), 224-225
benchmarks, 177-179CFQ I/O scheduler,
417-420clients, 350-354code, 301-304
algorithms, 305-328commercial workload,
479-480, 489-504compilers as tuning tools,
303-304databases, 362-365file servers, 354-358file systems, 436
Ext3 file system, 256,436-440
JFS (Journaled FileSystem), 266-268,442-443
ReiserFS, 260, 264,440-441
XFS, 270-272, 443-445Gigabit Ethernet,
Netperf3, 471-472I/O schedulers, 221-222kernel parameters,
507-509
networkskernel parameter tuning
mechanisms,278-287
network protocol stack,277-278
profiling, 302-303schedulers, 192-193virtual memory, 209-212web servers, 337-340
Apache web servers,338-339
event-driven webservers, 339
Flash web servers, 339log analysis tools, 340Tux web servers, 339workload generators, 340
Tux web servers, tuning, 339
Uucast_solicit parameter
(kernel), 516UNIX, Linux, compared, 19unres_qlen parameter
(kernel), 516user address spaces, 21, 197User Ramp Up tests, 489usr partition, placement, 4-5utilities
Ext2 file system, 258-259JFS (Journaled File
System), 268ReiserFS, 264XFS (Next-Generation File
System), 272-273uuidgen utility (Ext2/Ext3 file
system), 259
Vvar partition, placement, 4-5var/log/messages logs, 11var/log/XFree86.0.logs, 11
variables (kernel), 277vectored I/O, databases, 371vendor server portability,
application servers, 378vendors, application
servers, 380version parameter (kernel), 511vertical clustering, application
servers, 392VFS (virtual file systems),
30, 32VGs (volume groups), 31-32viewing
address spaces, virtualmemory, 196
logs, 10virtual file systems, 30, 32virtual memory, 195, 205
address spaces, 21, 196-197area structures, 198-199generic view, 196kernel address
spaces, 199paging, 201-203swapping, 201-203user address spaces,
197-198CPU scheduler, 212-214highmem interface, 201kernel image section,
195, 200kernel module section, 199kernel parameters, 511-513largepages, support for, 206ObjRMAP (object-based
reversed mapping), 206page allocation, 207page replacement, 207page tables, 203, 205paging, 23processes, 195
address translationprocess, 204-205
546 Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 546
rmap (reversed mapping), 205
slab allocators, 208tuning, 209-212
vm.heap-stack-gap parameter(kernel), 511
vmstat commandCPU utilization, 62-65memory utilization, 72-73
vm_cache_scan_ratio parameter (kernel), 513
vm_gfp_debug parameter(kernel), 513
vm_lru_balance_ratio parameter (kernel), 513
vm_mapped_ratio parameter(kernel), 513
vm_passes parameter (kernel), 513
vm_vfs_scan_ratio parameter(kernel), 513
VolanoMark Java Serverbenchmarks, 161-162,183, 456, 473-474
volume groups (VGs), 31-32volume managers, 30-31
Wweb servers, 331
application servers, 390need for, 375
architecture models,336-337
benchmarks, 166, 408ECPerf, 168SPECjAppServer, 168SPECweb, 166-168SPECweb SSL, 166-168TCP-W, 166-168
commercial workload,Trade3 benchmark, 491
concurrency, 336dynamic content
generation, 331
Ethereal packet capturetool, 334-335
HTTP (HyperText TransferProtocol), 331
network behavior, 333requests, 332-333responses, 331-333transactions, 335-336tuning, 337-340
Apache web servers,338-339
event-driven webservers, 339
Flash web servers, 339log analysis tools, 340Tux web servers, 339workload generators, 340
WebDAV extensions (HTTP), 347
WebSphere ApplicationServer, 377
Trade3 benchmark,commercial workload,481-504
window scaling, TCP,enabling, 284
wmem_default parameter(kernel), 515
wmem_max parameter (kernel), 280, 515
word sizes, processors, 39workload charcterization, 174workload generators, web
servers, 340workloads
benchmarking, 132,134, 173
analysis methodologies,175-179
application bench-marks, 161-168
benchmarking methodology casestudy, 175
kernel performancebenchmarks,179-184
microbenchmarks,134-160
performance evaluationmethodologies,173-174
commercial workloadsJ2EE model, 480-481Trade3 benchmark,
481-504tuning, 479-480
databases, 367-368decision support system
(DSS) workloads, 362steady state of
operation, 131write buffers, TCP, kernel
parameters, 281-283write_starved parameter (I/O
scheduler), 221
X-ZXFS (Next-Generation File
System), 5, 268-269allocation groups, 269creating, 270-271external logs, 271fullness, 271kernel configuration
support, 269layout, analyzing, 435mounting, 271-272partitions, 269tuning, 270-272, 443-445utilities, 272-273
Zerocopy, network performance, 458-459
Ziff-Davis, NetBench, 456zones, memory nodes, 22Zope application servers, 377zSeries mainframes, 45-48
547Index
Johnson_Index.qxd 4/1/05 5:21 PM Page 547
Johnson_Index.qxd 4/1/05 5:21 PM Page 548
Recommended