Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
Save to My Library
Look up keyword or section
Like this

Table Of Contents

Agenda – Day 1
Agenda – Day 1 (cont)
Agenda – Day 2
Agenda – Day 2 (cont)
Goals, Non-goals & Assumptions
Why Performance, Observability & Debugging?
Before You Begin
General Methods & Approaches
Solaris Kernel Features
The Multithreading Revolution
Solaris 10
Solaris Kernel Overview
Introduction To Performance & Observability Tools
Solaris 10 Dynamic Tracing - DTrace
DTrace – The Big Picture
DTrace – command line
DTrace – D scripts
DTrace – Running syscalls_pid.d
Allowing dtrace for non-root users
Modular Debugger – mdb(1)
Kernel Statistics
Procfs Tools
pflags, pcred, pldd
pwdx, pstop, pwait, ptree
Examining Kernel Activity Kernel Profiling
The *stat Utilities
Virtual Memory
Solaris Virtual Memory
Solaris Virtual Memory Glossary
Part 1:
Physical Memory Management
The Solaris 8/9 Cache
Memory Summary
Solaris 9 Memory Summary
Vmstat -p
Swap Usage
Part 2:
Address Spaces: A Deeper Dive
Example Program
Pmap -x (Solaris 8)
Examining paging with dtrace VM Providor
Examining paging with dtrace
Solaris 9 pmap
Process Swap Reservations
Unbundled Tools
Process/Threads Glossary
Solaris Process Model
Solaris Process
Kernel Process Table
System-wide Process View - ps(1)
System-wide Process View - prstat(1)
The Life Of A Process
Process Creation
fork(2) in Solaris 10
exec(2) – Load a new process image
Process / Thread States
State Transitions
Watching Process States
prstat – process microstates
prstat – user summary
Solaris 8 ptools
Solaris 9 / 10 ptools
Process Tracing – Truss
Process Tracing – System Call Summary
Library Tracing - truss -u
Library Tracing – apptrace(1)
User Threads
Threads Primer Example:
T1 – Multilevel MxN Model
T1- Multilevel Model
T2 - Single Level Thread Model
Watching Threads
Thread Semantics Added to pstack, truss
Thread Microstates
Scheduling Classes & The Kernel Dispatcher
Solaris Scheduling
Scheduling Classes
Scheduling Classes – Solaris 9 & 10
Scheduling Classes and Priorities
Scheduling Class & Priority of Threads
Dispatch Queues & Dispatch Tables
Per-CPU Dispatch Queues
Timeshare Dispatch Table
RT, FX & FSS Dispatch Tables
Dispatch Queue Placement
Thread Selection
Thread Preemption
Thread Execution
Sleep & Wakeup
Observability and Performance
Turnstiles & Priority Inheritance
Processors, Processor Controls & Binding
Processor Controls
Processor Control Commands
Processor Sets
Example: Managing a cpuhog
Timeshare (TS) Scheduling (prstat -l)
Timeshare – No partitioning
Creating a Processor Set for cpuhog
File System Architecture
File system I/O via Virtual Memory
File System I/O
File System Reads: A UFS Read
Memory Mapped I/O
File System Implementation
Disk-based File System Architecture
The big caches:
File System Caching
Enabling Direct I/O
Using Direct I/O
The TMPFS filesystem: A mountable RAM-Disk
TMPFS File System Architecture
Lab: tmpfs
The Solaris 8 File System Cache
Tuning segmap
Tuning segmap_percent
UFS Access times
Asynchronous I/O
Putting it all together: Database File I/O
UFS is now Enhanced for Databases:
Key UFS Features
Database big rules
UFS write throttle
Other items for Solaris UFS
Solaris Volume Manager
Volume Manager/FS Features
Thank You!
Solaris Kernel Performance, Observability & Debugging Day 2
Performance & Observability Tools, Day 2
Dtrace – The Big Picture
DTrace Components
DTrace Probes
DTrace Providers
DTrace Providers, cont
DTrace Consumers
Listing probes
Fully specifying probes
Enabling probes
The D language
Built-in D variables
Actions: “trace”
Actions, cont
D Scripts
D Scripts, cont
Predicates, cont
Actions: More actions
Actions: Destructive actions
Output formatting
Output formatting, cont
Global D variables
Global D variables, cont
Thread-local D variables
Thread-local D variables, cont
A System View
prstat(1) – Threads
prstat(1) - Microstates
DTrace – Getting Below The Numbers syscalls
Dtrace – Getting Below The Numbers xcalls
Dtrace - xcalls
Lock Statistics – mpstat
Examining Adaptive Locks Excessive Spinning
Examining Adaptive Locks Excessing Blocking
Examining Spin Locks Excessing Spinning
Examining Reader/Writer Locks Excessing Blocking
Hardware / Software Interface
Trap CPU Accounting
Interrupt partitioning
Advanced Memory Topics
A Quick Guide to Analyzing Memory
Solaris 9+ Memory Summary
Memory Kstats – via kstat(1m)
Memory Kstats – via kstat Perl API
Using prstat to estimate paging slow-downs
Using DTrace for memory Analysis
Using DTrace for Memory Analysis
Using DTrace to estimate paging slow-downs
To a Terrabyte and Beyond: Utilizing and Tuning Large Memory
Large Memory
Large memory in perspective
64-bits – enough for everyone?
Solaris 7,8,9
64-Bit Solaris
Why 64-bit for large memory?
Developer Perspective
Exploiting 64-bits
Large Memory Hardware
Large Memory Solaris
Large Memory Solaris (ctd)
Configuring Solaris
Large Dump Performance
Oracle File I/O
64-Bit Oracle
Do I need Large Pages?
TLB Performance Knees
Trapstat Introduction
Available Page Sizes
Setting Page Sizes
Checking Allocated Page Sizes
TLB traps eliminated
Solution: Use the preload lib
What about Solaris 8?
Tips for UltraSPARC revs
OK, Lets do something about it
Executable Files
Executable & Linking Format (ELF)
ELF Files
Examing ELF Files
Examining ELF Files
Examing ELF Linker Dependencies
Runtime Linker Debug
Runtime Linker Debug - Libs
Runtime Linker Debug - Bindings
Runtime Linker – Debug
Process Structure
Process create example
Fork Kernel Trace
Fork Kernel Trace (cont)
Watching Forks
DTrace - exec(2)
Examining A Thread Structure
Who's Creating Threads?
Scheduling Class Functions
Scheduling Class Array
Scheduler Activations
Dtrace sched provider probes:
Lock Statistics – lockstat
lockstat - kernel profiling
Process, Thread, Scheduling Lab
Solaris iostat
Lab: 1 thread I/O example
Lab: 64 thread I/O example
Solaris iostat: New opts. since Solaris 8
Examining Physical IO by file with dtrace
Lab: Physical Trace Example
Examining IO wait with dtrace
Lab: Observing the File System I/O Path
Lab: Observing File System I/O
Lab: Observing File System I/O: Sync Writes
Random I/O
Sequential I/O
Sequential I/O – Looking at disks via iostat
Sequential I/O – Maximizing I/O Sizes
Examining UFS Block Layout with filestat
Network File Systems – Some background
However, now network >= storage/SCSI
Back to the future: Storage over IP
IP Storage in Solaris
NFS Client: Optimizing for sequential
NFS Client: Database Performance
NFS Database Simulation using FileBench
NFS Client: Open/Close optimization
NFS Server
Filesystem Performance Characterization
Requirements for file-level benchmarking
Characterization Strategies
Model based methodology study
Model Allows Complex/Important Scaling Curves
Characterize and Simulate via Cascades of Workload Flows:
Flow States: Open Ended Flow
Flow States: Synchronized Flow
Examples of Per-flow Operations
Simple Random I/O Workload Description
Random I/O – NFS V3
Database Emulation Overview
Database Emulation Process Tree
Simplified OLTP Database Program
OLTP Program – Benchmark Result Detail
Workload Discussion
Filebench Achitecture
Running filebench
Filebench Status
ZFS Overview
ZFS Principles
Background: Why Volumes Exist
FS/Volume Model vs. ZFS
ZFS Administation
Solaris Resource Management
Service Level Management:
Policy based performance:
Enabling Server Consolidation
Server Virtualization
Resource Management Is…
Resource Partitioning
Resource Pools
Workload Classification
Project—More Details
Resource Control
Fair Share Scheduler
Workload Performance Tools
Using ps with workloads
Using prstat-J with workloads
0 of .
Results for:
No results containing your search query
P. 1
SOLARIS Kernel - Performance, Observability & Debugging

SOLARIS Kernel - Performance, Observability & Debugging

Ratings: (0)|Views: 1,144 |Likes:
Published by crryu

More info:

Published by: crryu on Jul 19, 2008
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





You're Reading a Free Preview
Pages 4 to 516 are not shown in this preview.
You're Reading a Free Preview
Pages 519 to 536 are not shown in this preview.

Activity (13)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Smith Rx liked this
JaeHeung Gill liked this
dave412562395 liked this
padi53 liked this
shekar_bandi liked this
davevink liked this
asingh2819 liked this

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->