Foreword p. xv Preface p. xvii The team that wrote this redbook p. xviii Comments welcome p. xx Introduction p. 1 Three phases p. 1 Netfinity Performance Lab p. 2 IBM Center for Microsoft Technologies p. 3 This redbook p. 4 Understanding server types p. 7 Domain controllers p. 7 Windows 2000 Active Directory domain controllers p. 9 File and print servers p. 10 Print server p. 11 Database servers p. 12 E-mail servers p. 13 Web servers p. 14 Groupware servers p. 15 Multimedia server p. 15 Communication server p. 16 Terminal server p. 17 Server subsystems p. 19 Introduction p. 21 Processors and cache subsystem p. 25 Processors p. 25 Pentium p. 25 Pentium Pro p. 27 Pentium II p. 29 Pentium II Xeon p. 34 Pentium III and Pentium III Xeon processors p. 37 Processor summary p. 44 SMP design and performance p. 44 Hardware scaleability p. 45 Software scaleability p. 50 Processor performance p. 52 L2 cache size p. 52 CPU clock speed p. 52 Number of processors p. 53 Rules of thumb p. 54 CPU rules of thumb p. 54 L2 cache rules of thumb p. 57
CPU scaleability rules of thumb p. 60 PCI bus subsystem p. 63 Design p. 63 PCI bus operation p. 64 PCI bus performance p. 65 PCI bridges and multiple PCI buses p. 66 PCI chipsets p. 68 Intel 440LX chipset p. 70 Intel 440BX chipset p. 72 Intel 440GX chipset p. 76 Intel 450GX chipset p. 77 Intel 450NX chipset p. 81 Reliance Champion 2.0 LE chipset p. 83 Reliance Champion 2.0 HE chipset p. 85 ServerWorks ServerSet III LE chipset p. 88 Intel Profusion chipset p. 90 Memory subsystem p. 93 Memory types p. 93 Specifying memory performance p. 95 Fast page mode memory p. 95 FPM performance p. 96 Extended data out (EDO) memory p. 97 EDO performance p. 97 Synchronous Dynamic Random Access Memory (SDRAM) p. 98 Registered and unregistered DIMMs p. 98 PC 100 and PC 133 memory p. 99 SDRAM performance p. 99 Double Data Rate memory (DDR) p. 100 DDR performance p. 100 Rambus memory p. 101 Memory interleaving p. 101 Netfinity 8500R performance p. 104 Netfinity 7000 M10 performance p. 105 Addressing memory above 4 GB p. 106 PAE-36 and PSE-36 p. 107 Physical Address Extension (PAE) p. 108 Page Size Extension (PSE) p. 109 Address Windowing Extensions (AWE) p. 111 Advanced ECC memory (Chipkill) p. 115 Memory rules of thumb p. 117 Disk subsystem p. 119
SCSI bus overview p. 120 SCSI p. 120 SCSI-2 p. 120 Ultra SCSI p. 121 Ultra2 SCSI p. 121 Ultra3 SCSI p. 122 SCSI controllers and devices p. 122 SCSI IDs p. 124 Disk array controller architecture p. 124 Disk array controller operation p. 125 RAID summary p. 127 RAID-0 p. 128 RAID-1 p. 129 RAID-1E p. 130 RAID-5 p. 131 RAID-5E p. 132 Composite RAID levels p. 134 ServeRAID RAID-5 algorithms p. 136 Read/modify write algorithm p. 137 Full XOR algorithm p. 138 Sequential write commands p. 139 Factors affecting disk array controller performance p. 140 RAID strategy p. 140 Number of drives p. 141 Drive performance p. 143 Logical drive configuration p. 145 Stripe size p. 146 SCSI bus organization and speed p. 150 Disk cache write-back versus write-through p. 153 RAID adapter cache size p. 155 Device drivers p. 156 Firmware p. 158 Fibre Channel p. 159 Fibre Channel performance issues p. 163 Tuning with Netfinity FAStT Storage Manager p. 171 Disk subsystem rules of thumb p. 176 Network subsystem p. 179 Operation p. 179 Performance p. 181 Network design p. 182 Device drivers p. 184
Load balancing p. 185 Adaptive load balancing (ALB) p. 185 Fast EtherChannel (FEC) p. 186 Gigabit EtherChannel (GEC) p. 186 Data transmission unit size tuning p. 186 Media and link layer p. 186 Transport layer p. 187 TCP/IP tuning p. 187 LAN rules of thumb p. 188 Operating system p. 191 Introducing Windows 2000 p. 191 Tuning p. 193 Application performance boost p. 193 Virtual memory p. 196 Optimizing for Windows paging p. 199 Specifying the server type p. 201 Disabling unnecessary services p. 203 Remove unnecessary networking protocols and services p. 206 Optimize the protocol binding order p. 207 Log off the server p. 208 Install the latest device drivers p. 209 Distribute the work load p. 209 File systems p. 209 Disabling short name generation p. 210 CPU intensive applications p. 211 Tuning TCP/IP p. 211 Tuning domain controllers p. 213 Monitoring tools p. 215 Performance monitoring tools p. 217 Comparing the tools p. 218 Using Performance Monitor p. 218 Using Capacity Manager p. 219 Windows 2000 Performance console p. 221 Overview p. 223 System Monitor p. 224 Performance Logs and Alerts p. 225 Objects, counters and instances p. 226 System Monitor p. 227 Adding counters p. 230 Deleting objects p. 232 Saving object and counter settings p. 232
Highlighting an object counter p. 232 Performance Logs and Alerts p. 232 Counter logs p. 233 Alerts p. 240 Trace logs p. 244 Key objects and counters p. 248 Customizing the Performance console p. 250 Using the Performance console with other tools p. 252 Missing performance objects p. 254 Resource Kit tools for performance p. 255 Capacity Manager p. 257 What's new? p. 258 Capacity Manager data files p. 258 Installing Capacity Manager p. 259 Monitor Activator p. 261 Report Generator p. 262 Creating a new report definition p. 263 Working with predefined reports p. 269 Generating a report p. 270 Report Viewer p. 272 Setting thresholds p. 274 The System pane p. 276 The Monitor pane p. 278 The Graph pane p. 278 Performance analysis p. 282 Reports produced p. 283 Types of bottlenecks p. 285 Setting critical and warning threshold values p. 286 Forecast p. 288 Task Manager p. 291 Starting Task Manager p. 291 Processes tab p. 291 Performance tab p. 295 Working with bottlenecks p. 299 Spotting a bottleneck p. 301 Step 1: Questions to ask p. 301 Step 2: Analyzing the server's performance p. 302 Processor subsystem p. 304 Memory subsystem p. 305 Disk subsystem p. 306 Network subsystem p. 307
Step 3: How can it be fixed? p. 308 Conclusion p. 310 Analyzing bottlenecks p. 311 Basic tuning strategy p. 311 Factors affecting server performance p. 312 Application considerations p. 313 Performance bottlenecks p. 314 Measuring current performance p. 314 CPU bottlenecks p. 315 Finding CPU bottlenecks p. 315 Performance tuning options p. 317 Memory bottlenecks p. 320 Paged and non-paged RAM p. 320 Virtual memory system p. 321 Hard page faults p. 322 Finding memory bottlenecks p. 322 Performance tuning options p. 324 Disk bottlenecks p. 325 Finding disk bottlenecks p. 326 Performance tuning options p. 328 Network bottlenecks p. 330 Finding network bottlenecks p. 330 Performance tuning options p. 334 Monitoring network protocols p. 341 Anticipating future bottlenecks p. 342 Detecting future bottlenecks p. 342 Performance analysis p. 343 Performance summary and configuration tips p. 346 CPU rules of thumb p. 346 Disk subsystem rules of thumb p. 346 Memory rules of thumb p. 346 LAN rules of thumb p. 347 McKnight's rule of server behavior p. 347 Summary p. 351 Case studies p. 353 Lotus Notes server p. 353 Performance measurement p. 354 Data analysis p. 354 Summary p. 360 File server p. 360 Performance measurement p. 360
Data analysis p. 361 Summary p. 364 ERP application server p. 365 Data analysis p. 365 Summary p. 370 Applications p. 373 File server p. 375 The effect of server hardware on performance p. 375 Optimizing operating system performance p. 378 Application responsiveness p. 378 System cache p. 379 Virtual memory p. 381 Performance monitoring p. 382 Lotus Domino p. 385 Important subsystems p. 385 Sizing and optimizing the hardware p. 386 Memory subsystem p. 386 Processor subsystem p. 387 Disk subsystem p. 387 Optimizing operating system performance p. 388 Application responsiveness p. 388 System cache p. 390 NTFS allocation unit and stripe size considerations p. 392 Optimizing Lotus Domino performance p. 393 Changing statements in the notes.ini file p. 393 Configuring server tasks p. 394 Optimizing database performance p. 396 Improving mail performance p. 406 Calendaring and scheduling resource usage p. 414 Minimizing logging activity p. 416 Improving Agent Manager performance p. 417 Managing server sessions p. 420 Controlling user access p. 422 Improving replication performance p. 423 Enabling of transaction logging p. 424 Improving Web server performance p. 425 Using port encryption p. 433 Lotus Domino partitioning p. 434 Balancing workload in a Lotus Domino cluster p. 434 Maintaining Lotus Domino servers p. 436 Planning for future growth p. 437
Top 10 ways to improve your server's performance p. 437 Summary p. 439 Microsoft Exchange Server p. 441 Mail server p. 441 Network subsystem p. 442 Memory subsystem p. 442 CPU subsystem p. 444 Disk subsystem p. 445 Groupware server p. 447 Other server performance factors p. 447 Exchange Server performance settings p. 448 Using the Performance console p. 454 Predefined charts p. 455 Basic counters p. 455 Exchange Server performance monitoring p. 456 Capacity management using LoadSim p. 461 Generating scores using LsLog p. 462 Performance tools and LoadSim p. 462 Performance criteria p. 463 SAP R/3 p. 465 SAP R/3 application servers p. 466 Important subsystems p. 467 Optimizing Windows NT and Windows 2000 performance p. 468 Application responsiveness p. 468 System cache p. 469 Virtual memory p. 471 Disable unnecessary Windows NT or Windows 2000 services p. 473 SAP R/3 monitoring and tuning p. 473 Tuning SAP R/3 performance p. 480 Tuning Microsoft SQL Server 7.0 for SAP R/3 performance p. 483 Hardware tuning and configuration tips p. 486 System configuration p. 487 Disk array controller optimization p. 487 Summary p. 487 Microsoft SQL Server 7.0 p. 489 What's new in Microsoft SQL Server 7.0 p. 490 SQL Server performance tuning basics p. 491 Important subsystems p. 492 Optimizing Windows NT and Windows 2000 p. 493 Application responsiveness p. 493 System cache p. 495
Virtual memory p. 496 The database environment p. 498 Optimizing SQL Server subsystems p. 499 Max async I/O p. 499 Worker threads p. 500 LazyWriter p. 500 Checkpoint p. 501 Log manager p. 503 Read-ahead manager p. 504 Separating data and selecting RAID levels p. 505 SQL Server indexes p. 507 Non-clustered Indexes p. 508 Clustered Indexes p. 509 Covering indexes p. 509 Automatic covering indexes or covered queries p. 510 Index selection p. 510 Clustered index selection p. 511 Importance of FILLFACTOR and PAD_INDEX p. 513 SQL Server 7.0 performance objects p. 515 Oracle p. 519 Oracle architecture p. 521 Memory p. 522 Processes p. 523 DBMS files p. 524 OLTP vs OLAP p. 525 Online transaction processing p. 525 Online analytical processing p. 526 Important subsystems p. 527 Operating system optimization p. 527 Oracle memory optimization p. 530 Shared pool p. 531 Database buffer cache p. 532 Redo log buffer cache p. 534 Oracle disk I/O optimization p. 535 Monitoring database performance p. 538 Performance Monitor counters p. 540 Summary p. 542 Windows 2000 Terminal Services p. 543 Important subsystems p. 543 Memory p. 543 Processor p. 544
Network p. 545 Tuning p. 546 Paging file p. 546 Network load balancing p. 546 Applications p. 547 Performance boost options p. 548 Citrix MetaFrame p. 552 Citrix load balancing p. 554 Appendixes p. 555 Special notices p. 557 Related publications p. 561 IBM Redbooks p. 561 IBM Redbooks collections p. 561 Referenced Web sites and online documents p. 562 How to get IBM Redbooks p. 567 IBM Redbooks fax order form p. 568 Abbreviations and acronyms p. 569 Index p. 573 IBM Redbooks review p. 593 Table of Contents provided by Blackwell's Book Services and R.R. Bowker. Used with permission.