This course is 3 days. Customizing the topic list will affect the time requirement.
Performance management specialists who are or will be responsible for the tuning and capacity monitoring of one or more machines running Unix. The topics listed below are concepts that are translated into the appropriate subsystem for the client's choice of platform.
Performance management requires a background in overall system architecture. This course takes the approach of tackling each major system of the chosen Unix platform individually, pointing out how resources are allocated, consumed, released, and reused.
System Overview
Kernel Environment
Virtual Memory Subsystem
System Call Subsystem
Process Scheduling
Processes and Threads
File Systems
Interprocess Communication Overview
Device I/O Subsystem
Upon completion of this course, the student will be able to:
Understand the operating system subsystems and their interactions
Understand the basic performance trade-offs of resource allocation
Describe how requests for CPU time, disk space, and memory are handled
Understand the performance implications of the tunable parameters
Use performance diagnostic tools to monitor and plan for future upgrades
Students are invited to bring their current ideas and questions to the classroom for discussion. Case studies, lecture, and group problem solving will be used (online labs are difficult in this environment, although demonstrations can be performed if appropriate equipment access is available).
Familiarity with Unix concepts such as the command line shell, pipes, I/O redirection, process ids, paging space, and so forth, would be very beneficial. All information required for a proper understanding of the course material will be provided; however, hands-on use of those techniques listed above will enhance the learning experience.
These are the major topics discussed within each part of the course. Some flexibility is assumed since not all Unix systems are identical in all respects.
Areas of Performance Management
Performance Management Goals
System Architecture
Tools for Performance Evaluation
Performance Tuning Methodology
Terminology
User mode vs. Kernel mode
Dynamic Driver Extensions
In-kernel Threading
Terminology
Application Memory Access
Effective to Virtual Address Translation
Swapping vs. Paging
Page Stealer
Virtual Memory Control
Tools for Monitoring
Tools for Tuning
What are System Calls?
Platform-specific Implementation (AIX, HP-UX, Solaris, Linux)
SMP and UP System Differences
How They Affect Performance
Terminology
Process Scheduling Strategies
The Technique in Detail (platform-specific)
The Process Life Cycle
The Thread Life Cycle
Tools for Monitoring
Tools for Tuning
The Benefits of Various Coding Techniques
Terminology
Traditional Filesystems
Comparison of Traditional vs. Vendor-specific
Vendor-specific FS in Detail (JFS, VxFS, hpfs)
Tools for Monitoring
Tools for Tuning
What You DO NOT Want to Do
Storage Options
Logical Volume Manager
Veritas File System
RAID - A Hardware Approach
Policies
Attributes that Affect Performance
Optimizing Access
Availability vs. Performance
Tools for Managing
Types of Process Communication
Performance Aspects
Concepts
IP Architecture
Ports and Sockets
Send and Receive Queues
Tools for Monitoring
Overall Tuning Strategy
Flowchart
CPU-bound Workload
Disk-bound Workload
Paging space-bound Workload
Local vs. Remote File I/O Workloads
Where to Go for More Help