Optimizing UNIX for Performance

Optimizing UNIX for Performance

By (author) 

Free delivery worldwide

Available. Dispatched from the UK in 3 business days
When will my order arrive?


For System Administrators, application programmers, MIS managers, and general users of UNIX systems who are interested in learning about and/or optimizing the performance of their UNIX system and networks. This is the most complete book available on performance optimization--featuring coverage of UNIX, networking (TCP/IP), hardware architecture, and program optimization--all in one volume. Covers performance basics; understanding UNIX; BSD instrumentation; System V instrumentation; system tuning; optimizing user programs written in high- level languages; and making accurate measurements. Explains in detail the output from each command--along with "real-life" rules of thumb on what value is "good" and what is not.show more

Product details

  • Paperback | 352 pages
  • 178 x 232 x 24mm | 580.61g
  • Pearson Education (US)
  • Prentice Hall
  • Upper Saddle River, United States
  • English
  • Facsimile
  • Facsimile
  • 0131115510
  • 9780131115514

About Amir H. Majidimehr

Amir Majidimehr is Senior Director of Engineering at Sony Microsystems, San Jose, California where he is in charge of workstation development. Previously, as an engineer in the UNIX Development Group at Gould, Inc., he wrote many device drivers and extensively rewrote major portions of BSD and System V operating systems. He has taught many classes in UNIX internals and performance tuning.show more

Table of contents

Introduction. General style. Organization. Terminology. 1. Performance Fundamentals. Why a System Runs Slowly. Amdahlis Law. Estimating percentage speed-up. The bubble effect. Response time versus throughput. Psychology of the user response time. The Heisenberg Uncertainty Principal. Smoothed versus peak statistics. Caches and the Proximity Principal. Summary. 2. Computer Architecture. The basic components. The CPU. The Clock Speed. Semiconductor Technology. Performance Characteristics. Integer Performance. Superscalar Execution. Floating- Point Performance. Impact of Memory Speed on FP Operations. The Bus Interface. Manufacturing and Cost Factors. The Memory Controller. DRAMs. DRAM Alternatives. Memory Subsystem Speed Specification. SRAMs. Virtual Memory Management. The Translation Lookaside Buffer. Caches. Direct Mapped Caches. Set Associative Caches. Cache Write Policies. Write Buffers and FIFOs. The I/O Subsystem. Polling. DMA Devices. Bus Mastering. Expansion I/O Buses. Sun SBUS. ISA. MicroChannel. EISA. High-Performance Local Buses. VESA VL. PCI. Other Buses. Disk Controllers. Caching Disk Controllers. Dumb Disk Controllers. RAID Controllers. Software Disk Striping. Disk Drives. Disk Drive Performance Metrics. Disk Drive Interfaces. The IDE Interface. The SCSI Interface. Other Storage Peripherals. The Graphics Subsystem. Video Update and Refresh. Graphics Operations. Additional Information. 3. Performance Characteristics of the UNIX Design. The Basics. Determining the Kernel Size. User Processes. System Calls. The Buffer Cache. Buffer Cache Memory Allocation. The File System Layer. The UNIX Directory Structure. The Inode Structure. The Name Lookup Cache. Traditional UNIX File System. The BSD Fast File System. Symbolic Links. Journalled File Systems. Raw Partitions. Process Creation. BSDis vfork. System Vis Copy-on-Write Optimization. Process Termination. Process scheduling. The Idle Loop. Process Suspension and Restart. The BSD Scheduler. Priority Migration. System Level Priorities. The SVR4 schedulers. Global Priorities in SVR4. The Time-Sharing Scheduler. Priority Migration Under the TS Scheduler. The Impact of the Nice Parameter. The Priocntl Interface. The Real-Time Scheduler. The IBM AIX scheduler. Memory Management. Demand Loading of User Programs. Zero-Fill-on-Demand. Shared Memory. Page Caching. Paging and Swapping. Performance Implications of Swapping and Paging. Swapping and Paging in SCO UNIX. Swap Allocation. The Paged Buffer Cache. Multiprocessing (MP) Support. Threads. Kernel tables. 4. The BSD Monitoring Tools. Invmstat. The CPU Statistics. Memory Statistics. Paging and Swapping. Disk I/0. Process Information. System Call Statistics. Hardware Interrupts. Context Switch Statistics. Sun Name Look-Up Cache Information. Other vmstat Features. DEC vmstat. SCO vmstat. iostat. Detailed CPU Usage. Disk Statistics. Terminal Activity. ps. Per Process CPU Utilization. Per Process Memory Utilization. Memory Sorted Process Display. DEC UNIC ps. uptime. pstat. Sun multiprocessor statistics. 5. System V Monitoring Tools. sar. CPU Utilization. Buffer Cache Hit Rates. System Call Rates. Disk Statistics. pageout Activity. Pagein Activity. Swapping Activity. Free Memory and Swap Space. CPU Run Queue Statistics. Table Sizes. Name Cache Statistics. Solaris Kernel Memory Allocator Statistics. System V ps. DEC UNIX ps. The Top Utility. Printing System Configuration. Conclusions. 6. UNIX Terminal Support. The Kernel Tty Support. cbreak and raw Character Processing. Serial Port Input Mechanism. Serial Port Output Mechanism. Character Buffering. Monitoring Terminal Traffic. The Streams Facility. 7. Optimizing The System. Identifying the Memory Shortfall. Solving Memory Shortages. Streamlining the Kernel. Tuning the Kernel Tables. Tuning the MAXUSERS Parameter. Removing Kernel Modules. Limiting the Paged Buffer Cache Size. Reducing the User Memory Usages. Changing the Work Load. Tuning the Paging/Swapping Subsystem. Lowering CPU Usage. Postponing ro Suspending Program Execution. Changing Process Priorities. Tuning the Scheduler. Optimizing Programs. Reducing The exec and fork Rates. The Console Output Overhead. The Inode and Name Lookup Caches. Reducing the Interrupt Rate. Increasing CPU Cycles. When to AddMore CPUs to a System. Degree of Speed-Up in Multiprocessor Systems. Improving the File System Performance. Balancing Multiple Drives. Using Disk Striping or RAID to Balance Disk Traffic. Optimizing Single-Drive Systems. Sunis tmpfs File System. Tuning the Paged Buffer Cache Size. Tuning the Metadata Buffer Cache Size. Adjusting the Buffer Cache Size in SCO UNIX. Optimizing the Cache Flush Parameters. Choosing Between a RAM Disk and the Buffer Cache. Tuning the System V File System. Tuning the Fast File System. Optimizing the Block and Fragment. Using tunefs to Set FFS Parameters. Rotational Latency Optimization. Upgrading the Disk Subsystem. 8. TCP/IP Architecutre and Optimization Techniques. ITCP/IP basics. Sockets. Reading and Writing Sockets. The UDP Protocol. The Internet Protocol. The Transmission Control Protocol. TCP Flow Control and Acknowledgment Scheme. Physical Interfaces. Ethernet. Performance Considerations of Ethernet. FDDI. 100-Mbit Ethernet. ISDN. Networking Applications. Monitoring the Network with netstat. Real-Time Network Monitoring. Network Summary Information. The ping Command. Monitoring Burst Response Using spray. Network Optimization Basics. Breaking Up the Network to Improve Performance. Performance Summary. 9. NFS Architecture and Optimization Techniques. The Basics. RPC Performance Considerations. Impact of the NFS Block Size. NFS Caching. Attribute Caching. Server Processing. Monitoring NFS Performance Using nfsstat. Optimizing NFS Servers. Optimizing the Network for NFS Usage. Optimizing NFS Clients. Automounted File Systems. Other Network File Systems. 10. X Window And Motif. X-Window Implementation Under Unix. Client-Server Communication in X. The Window Manager and Toolkits. Performance Considerations in X. Optimizing Your System for X. Optimizing X and Motif. X Terminals. 11. Industry Standard Benchmarks And Performance Measures. Benchmarks Versus Real Applications. The Megahertz Rating. Simple MIPS. The Whetstone Benchmark. The Linpak Floating Point Benchmark. Dhrystone and the New MIPS. The SPEC CPU Benchmark. SPEC SDM Multiuser Suite. SPEC SFS NFS Benchmark. 10X Window Benchmarks. Database Benchmarks. Proprietary Benchmarks. Conclusions. 12. Choosing The Right Hardware. Understanding Design Cycles. Survival of the Fittest. Selecting the Best Architecture. X86 PCs. Selecting RISC Systems. References. 13. Optimizing User Programs. Basic Time Measurements. Profiling Programs. Simple Frofiling Using Prof. Call-graph Profiling with gprof. Opportunities for Optimization. The Optimizer. Other Optimization Techniques. Dynamic Shared Libraries. Process Timing Mechanism. Results and Conclusions. Additional Information.show more