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 (some are vendor-specific)
-
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