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

Table Of Contents

Quick Tips and Recipes 1
Quick Reference for Common Tuning Tips
The system will usually have adisk bottleneck
PoorNFS response times may be hard to see
Avoid thecommonvmstat misconceptions
Don’t panic when you seepage-ins and page-outs invmstat
Usepage scanner “sr” activity as yourRAM shortage indicator
Look for a longrun queue (vmstat procs r)
Look forprocesses blockedwaiting for I/O (vmstat procs b)
Check forCPU system time dominating user time
Watch out forprocesses that hog the CPU
Cold Start Procedure
Configuration and Tuning Recipes
Single-User Desktop Workstation Recipe
Workgroup Server Recipe
Database Server Recipe
Multiuser Server with ASCII or X Terminals Recipe
Internet andJava Server Recipes
Performance Management 2
What Is Performance Management?
Financial Management Scenario
Computer System Performance Analogies
Performance Management Cost Justification
The Life Cycle of Performance Management
Performance Tools Provided in Solaris 2
Performance Management Products
Performance Management Terminology and Functions
Product Overview
Product Evaluations
Thoughts on the Future
Performance Measurement 3
The Workload
Fixed Workloads
Random Workloads
Managed Workloads
Workload Characterization
Configuration Changes
Measurement Types and Relationships
Fundamental Types
Multiuser System Response Time
Collecting Measurements
Using Accounting to Monitor the Workload
Collecting Long-Term System Utilization Data
Percollator—A Customizable Data Collector
Processing and Analyzing the Measurements
Generating Averages withsar
Using the Results Generated by an Emulator System
Obtaining Results on a Live System
Analyzing the Results
Producing a Sizing Model
Looking for Trends
Further Reading
Internet Servers 4
Introduction to TCP
Connections
TCP/IP Patches and the Listen Queue Fix
The TCP Slow Start Algorithm and Congestion Window Problems
TCP Data Transfer
Network Data Transfer
TCP Flow Control
TCP Parameter Tuning
Features of the Solaris Internet Server Supplement
TCP Monitoring with the SE Toolkit
TCP Transfer Characteristics for Web Servers
Collecting asnoop Sequence
Tiny HTTP Transfer Characteristics
Medium-Sized HTTP Transfer with Retransmit Congestion
A Clean Transfer to a Buggy TCP Client
Small Window-Limited Transfers
Tail End of Large Transfer with Window Close
Large Transfer Retransmit Problems
Increased Minimum Retransmit Time-out
HTTP Persistent Connection Sequences
Additional TCP Sequences
Internet Web Server Sizing
How Many Users?
How Many Operations Per Day and Per Second?
Network Capacity for HTTP
HTTP-Only Server Performance
Additional Web Server Workloads
Disk Capacity and HTTP Access Patterns
RAM Requirements
RAM Usage—How Many Instances?
HTTP Size Mixes and Benchmarks
HTTP Performance Measurement
Web Server Performance Management
The SE Toolkit Web Server Performance Collator,percollator.se
Processing Collected Data
Real-World HTTP Rate Changes over Time
Load Curve for a Week
HTTP Load over a Month
Proxy Web Caching Servers
Cache Effectiveness
Caching for Administrative Control
Client Web Browser Configuration
Clustered Proxy Cache Architectures
Configuring and Monitoring the Netscape 2.5 Proxy Cache
Observed Results in Practice
Hardware Configuration Issues for a Proxy Cache
Java Application Servers 5
Java Overview and Terminology
What Is Java?
Distributed Java Applications
Client/Server Comparisons
Client/Server Characteristics
Java Computing Clients
Dumb Terminal Clients
Fat Clients: PCs and Workstations
X-Terminal Clients
Emulating NC-Based Users
Java-Based Testing Tool
NC Emulation Using JavaStar
Problems and Restrictions
Emulation System Loads
Network Load Emulation
Measuring and Predicting the Server Load with BGS Best/1
Sizing Tests and Results
Boot Sequence Analysis
Booting Storms
NFS Workstation Browser Startup Comparisons
HotJava Views
Simple HTML Web Browsing and Java Applets
Applix Anyware
VT220 Terminal Emulation
3270 Terminal Emulation
Corel Office For Java
Custom RDBMS Clients
Sun Sales Forecasting Application
X-Terminal Emulation
Windows PC Applications
Overall Sizing Estimates
Conclusion
Source Code Optimization 6
Java Tuning
The Metrognome Class
Java Tuning and Java Virtual Machines
GPercollator Performance and Size Issues
The Java WorkShop Performance Analyzer
Java WorkShop Profiler Display Examples
When Does “64Bits”Mean More Performance?
SPARC and Solaris Versions
64-bit Floating-Point Arithmetic
64-bit Integer Arithmetic
Internal Buses or Datapaths
External Buses and Caches
64-bit Addressing
A Hundred Times Faster? Nothing to Scream About!
How Does a 32-bit System Handle More Than 4 Gbytes of RAM?
The Bottom Line
Linker Options and Tuning
Static Linking
Dynamic Linking
Solaris 1 Compatibility
Mixed-Mode Linking
Interposition and Profiling
Dynamic Performance Improvements in Solaris 2.5
SunSoft Official Position on Linking Options
UltraSPARC Compiler Tuning
An Incremental Plan for UltraSPARC Optimization
Running the Existing Application on UltraSPARC Hardware
Comparing Performance
Processor -Specific Dynamic Libraries
Migrating Your Application toatLeast SPARCompilers 4.2
Optimizing Code Scheduling for UltraSPARC
The Implications of Nonportable Optimizations
Building an UltraSPARC-Only Application
Numerical Computation Issues
Building a VIS Instruction Set-Enabled, Device-Specific Module
Summary
Applications 7
Tools for Applications
Tracing Applications
Tracing System Calls Withtruss
Tracing Shared Library Calls Withsotruss
Profiling Shared Libraries withLD_PROFILE
Timing
Process Monitoring Tools
The Effect of Underlying Filesystem Type
Unix File System (UFS)
UFS with Transaction Logging
Tmpfs
The NFS Distributed Computing File System
Cachefs
Veritas VxFS File System
Direct I/O Access
Customizing the Execution Environment
File Descriptor Limits
Databases and Configurable Applications
Hire an Expert!
Basic Tuning Ideas
Increasing Buffer Sizes
Using Raw Disk Rather Than File Systems
Fast Raw Backups
Balance the Load over All the Disks
Which Disk Partition to Use
The Effect of Indices
How to Configure for a Large Number of Users
Database Tuning Summary
Disk Workloads
Sequential versus Random Access
Disk Reads and Read Caching
Disk Writes and the UFS Write Throttle
Disk Write Caching
Physical Disk Combinations
RAID and Disk Arrays
Disk Configuration Trade-off
Disk Load Monitoring
Output Formats and Options foriostat
Idle Disks and Long Service Times
The Solaris 2.5 Trace Capability
I/O Trace: Commands and Features
Howiostat Uses the Underlying Disk Measurements
Filesystem Tuning
Eagle DiskPak
Disk Specifications
What the Disk Makers Specify
What the System Vendors Specify
What You Can Work Out for Yourself
Zoned Bit Rate (ZBR) Disk Drives
IPI Disk Controllers
SCSI Disk Controllers
SCSI Interface Types
Tagged Command Queuing Optimizations
Setting the SCSI Options Variable
Sun’s SCSI Controller Products
The SPARCstorage Disk Array
TheRSM2000, A1000 and A3000 Hardware RAID Subsystems
The Enterprise Network Array 5000: A5000 FC-AL Subsystem
The A7000 High End Disk Subsystem
The Data Behindvmstat andmpstat Output
The Sources ofvmstat Data
Process Queues
Virtual Memory Counters
Paging Counters
CPU Usage and Event Counters
Use ofmpstat to Monitor Interrupts and Mutexes
Cache Affinity Algorithms
Unix on Shared Memory Multiprocessors
The Spin Lock or Mutex
Code Locking
Data Locking and Solaris 2
Monitoring Solaris 2.6 Lock Statistics
Multiprocessor Hardware Configurations
Distributed Memory Multiprocessors
Shared Memory Multiprocessors
Shared/ Distributed Memory Multiprocessors
NUMA Multiprocessors
CPU Caches
CPU Cache History
Cache Line and Size Effects
A Problem with Linked Lists
System Architectures 11
SPARC Architecture and Implementation
Register Windows and Different SPARC CPUs
The Effect of Context Switches and Interrupts
Identifying Different SPARC CPUs
The SPARC Reference MMU Table-Walk Operation
The UltraSPARC MMU Architecture
Early SPARC System Architectures
SPARC Uniprocessor VMEbus Systems
The First Generation of SPARC Uniprocessor Desktop Systems
Second-Generation Uniprocessor Desktop SPARC Systems
Third-Generation Uniprocessor Desktop SPARC Systems
Entry-Level Multiprocessor-Capable Desktop
Multiprocessor-Capable Desktop and Server
Adding More Processors
SuperSPARC-Based Multiprocessor Hardware
Bus Architectures Overview
MP Cache Issues
Circuit-switched Bus Protocols
Packet-switched Bus Protocols
SuperSPARC XDBus Server Architecture
SuperSPARC Server Architectural Overview
SPARCserver 1000 System Implementation Overview
SPARCcenter 2000 System Implementation Overview
Interrupt Distribution Tuning
Console Terminal and Clock Interrupt Issues
Usingprtdiag to Show the Configuration
UltraSPARC Interconnect Architectures
The UltraSPARC Port Architecture Switched Interconnect
The Gigaplane Ultra Enterprise Server Backplane
The Gigaplane XB Crossbar
UltraSPARC III Interconnect Considerations
UltraSPARC System Implementations
The Ultra 5 and Ultra 10
The Ultra 1, Ultra 2 and Ultra 30, Ultra 60
Larger UPA Based Systems: The Enterprise 450
The Ultra Enterprise Server Architecture
The E10000 Starfire Implementation
Cache Principles
Cache Reads That Succeed
Cache Reads That Miss the Cache
Cache Replacement Policies
Cache Writes and Purges
Cache Efficiency
Generic Cache Behavior Summary
File Access Caching with Local Disk
Directory Name Lookup Cache
Inode Cache
UFS Metadata Buffer Cache
In-memory Page Cache
Disk Array Write Cache
The Standard I/O Buffer
Read, Write, and Memory Mapping
Networked File Access
NFS Access Caching
Rnode Cache
In-memory Page Cache on NFS Client
Disk Array Write Cache or Prestoserve
NFS V3 and TCP/IP Improvements
The Cache File System
RAM and Virtual Memory 13
Memory Usage and Sizing Tools
Understandingvmstat andsar Output
Memory Measurements
Page Fault Measurements
Page-out Measurements
Swapping Measurements
Examplevmstat Output Walk-through
Virtual Memory Address Space Segments
The Life Cycle of a Typical Physical Memory Page
Free Memory—The Memory-Go-Round
The Role of the Free List
Kernel Memory
Filesystem Cache
Process Private Memory
Free List Performance Problems and Deficit
System V Shared Memory
Filesystem Flush
Scan Rate Threshold Indicating a Memory Shortage
Kernel Values, Tunables, and Defaults
Swap Space
Swap Space Operations
Swap Space Calculations
System V Shared Memory, Semaphores, and Message Queues
Shared Memory Tunables
Semaphores
Message Queues
Kernel Algorithms and Tuning 14
Kernel Tuning
DocumentedConfigurationTunables
The History of Kernel Tuning
Tuningto Incorporate Extra Information
Tuning During Development
Tuningto Solve Problems
The Placebo Effect
Tunable Parameters
The Ones That Went Away
Dynamic Kernel Tablesin Solaris 2
SunOS and Solaris Release Overview
Solaris 2 Performance Tuning Manuals
Using/etc/system to Modify Kernel Variables in Solaris 2
General Solaris 2 Performance Improvements
Using Solaris 2 with Large Numbers of Active Users
The Performance Implications of Patches
Solaris 2.6 Performance Improvements
Web Server Performance
Database Server Performance
New and Improved Performance Measurements
Parameters Derived frommaxusers
Changingmaxusers and Pseudo-ttys in Solaris 2
Autoconfiguration ofmaxusers in Solaris 2.3 Through Solaris 2.6
Filesystem Name and Attribute Caching
Vnodes, Inodes, and Rnodes
The Inode Cache and File Data Caching
Buffer Cache
Measuring the Kernel
Usingsar to Examine Table Sizes
Kernel Memory Allocation
Kernel Lock Profiling with lockstatin Solaris 2.6
Kernel Clock Tick Resolution
Setting Default Limits
Mapping Device Nicknames to Full Names in Solaris 2
A Command Scriptto Do Itfor You
Metric Collection Interfaces 15
Standards and Implementations
The X/Open Universal Measurement Architecture Standard
The Application Resource Measurement Standard
Solaris 2 Native Metric Interfaces
The Traditional Kernel Memory Interface
Symbols
Extracting the Values
Procs and U-Areas
Other Functions
Caveats
The Solaris 2 “kstat” Interface
Link Structure
kstat Data Types
Thekstat Library
Reading thekstat Chain
Writing thekstat Chain
Network Protocol (MIB) Statistics via Streams
The Streams Mechanism
Option Management Requests
MIB Structures in Solaris
The Network Device Driver Interface
Process Data Sources
Where Does the Data Come From?
Process Information in Solaris 2.6
Tracing Process System Calls
Process Memory Usage Information
Who Ran What, When, and How Much Resource Was Used? Accounting!
Process Data Structures
The TNF Kernel Trace Probes
The RPC Remote Statistics Daemon andperfmeter
System Configuration Information
System Identity and Basic Configuration
The Openboot Device Tree —prtconf andprtdiag
DNLC Rule
Inode Rule
TCP/IP Rule
Look Out, There’s a Guru About
Thevirtual_adrian.se Performance Tuner And Monitor
Features of the SE Language
iostatWritten in SE
Rule Construction
The CPU Power Rule Explained in Detail
Example Program Descriptions
anasa.se
aw.se
collisions.se
cpg.se
cpu_meter.se
cpus.se
df_stats.se
disks.se
infotool.se
iomonitor.se
iost.se
iostat.se
%se iostat.se
kviewx.se
kvmname.se
live_test.se
mon_cm.se
monlog.se
mpvmstat.se
msacct.se
multi_meter.se
net.se
net_example
netmonitor.se
netstatx.se
nfsmonitor.se
nfsstat-m.se
nproc.se
nx.se
pea.se
percollator.se and/etc/rc3.d/S99percol
GPercollator Java Browser
ps-ax.se
ps-p.se
pure_test.se
pwatch.se
siostat.se
syslog.se
systune.se
tcp_monitor.se
uname.se
uptime.se
virtual_adrian.se and/etc/rc2.d/S90va_monitor
virtual_adrian_lite.se
vmmonitor.se
vmstat.se
watch.se
xio.se
xiostat.se
xit.se
zoom.se
The SymbEL Language 17
Collection of Performance Data
Tuning and Performance
Thekvm Library
Management Information Base (MIB)
The Network Device Driver ( NDD) Interface
Basic Structure
First Program
Simple Types
Simple Program
Embellishing the Simple Program
Array Types
Functions and Parameters
Global Variables
Operators and Expressions
Variable Names
Constants
Integer
Floating Point
Character
String
Declarations
Arithmetic Operators
Logical Operators
Bitwise Operators
Increment and Decrement Operators
Compressed Assignment Operators
Address Operator
Type Casting
Control Flow
Blocks
If-Then-Else Statement
Conditional Expression
switch Statement
Loops
Break
Continue
Goto
Functions, Procedures, and Programming Notes
Function Return Types
Scope
Initializing Variables
Notes About Arrays and Strings
Recursion
Built-in Functions
Dynamic Constants
Attachable Functions
Built-in Variables
Parameters tomain and Its Return Value
Structures
Accessing Structure Members
Arrays of Structures
Structure Assignment
Structure Comparison
Structures as Parameters
Structures as Return Values of Functions
Language Classes
Thekvm Language Class
Thekstat Language Class
Themib Language Class
Thendd Language Class
User-Defined Classes
Pitfalls
Tricks
Returning an Array of Nonstructured Type from a Function
Using Return Values from Attached Functions
Usingkvm Variables and Functions
Using anattach Block to Call Interpreter Functions
Tunables Quick Reference A
Tunable Kernel Parameters
System V IPC Tunables
References B
Internet Resources
Performance Information
Java Performance Information
Freely Available Performance Tools
Commercial Performance Tool Vendor Web Sites
Sun Products
Document Descriptions
Index
0 of .
Results for:
No results containing your search query
P. 1
AdrianCockcroft

AdrianCockcroft

Ratings: (0)|Views: 337|Likes:
Published by elg0ch0

More info:

Published by: elg0ch0 on Sep 12, 2010
Copyright:Attribution Non-commercial

Availability:

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

05/27/2013

pdf

text

original

You're Reading a Free Preview
Pages 13 to 254 are not shown in this preview.
You're Reading a Free Preview
Pages 267 to 294 are not shown in this preview.
You're Reading a Free Preview
Pages 307 to 476 are not shown in this preview.
You're Reading a Free Preview
Pages 497 to 613 are not shown in this preview.

Activity (5)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Eman Mahmoud liked this
mmabon liked this
dave_765 liked this

You're Reading a Free Preview

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