Organizations / Events

Computer Measurement Group (CMG)
        Holds annual International Conference
        Many regional US groups and International groups

ACM SIGMETRICS, the ACM Special Interest Group (SIG) for the computer/communication system performance community
        SIGMETRICS/Performance Conference (more academic)
        WOSP/SIPEW International Conference on Performance Engineering (more academic)


Generic

Wikipedia about Performance Engineering

SPE·ED Dr. Connie U. Smith's site about Software Performance Engineering (SPE) and SPE·ED - a tool support the SPE methods and models

PerfX Dr. Lloyd G. Williams' SPE publications, including 3 papers about performance anti-patterns

CMG conference proceedings from 1997 through 2005 a unique collection of papers about capacity planning, performance engineering, and performance management

SPE Radio "is designed to bring you the latest information in the world of Software Performance Engineering"

Performance Engineering for Systems in the Early Stages by Sudha Paidipati, an overview in line with Dr. Smith's approach.

Software, Performance, or Engineering? by Daniel A. Menascé

PerformanceEngineer.com information and links about software performance and performance testing by Charlie Weiblen

High Scalability "tries to bring together all the lore, art, science, practice, and experience of building scalable websites into one place so you can learn how to build your system with confidence"

A Performance Process Maturity Model by Michael Maddox

Charting the Course Through the Performance Management Life Cycle by Steven Rabin, see pp.13-20

Towards Component-Based Software Performance Engineering by Antonia Bertolino and Raffaela Mirandola

UML Profile for Schedulability, Performance, and Time Specification Version 1.1

Performance Programming: Theory, Practice and Case Study A tutorial by Rajat Garg, Ilya Sharapov and Alistair Rendell presented at SC2002

mBrace Part I Part II Part III - A pragmatic model driven approach for performance engineering of transaction processing systems by Michael Kok

Exploring roles for the UML diagrams in software performance engineering by Jose Merseguer and Javier Campos

Performance Anti-Patterns by Bart Smaalders
Software Performance Anti-Patterns discussion

Performance Engineering for Free by Andrew Lee

Assuring Performance in Large IT Systems

Infosys' Performance Engineering White Papers

Performance Requirements

Beyond performance testing: How fast is fast enough by Scott Barber

Get performance requirements right - think like a user by Scott Barber

Worth the Wait? by Peter Bickford

Quality is in the eye of the beholder: Meeting users' requirements for Internet quality of service by Bouch, A., Kuchinsky, A. and Bhatti, N.

When Is Your Web Site Fast Enough? by Chris Loosley

Response Times: The Three Important Limits, excerpt from Chapter 5 of Usability Engineering, 1994 by Jakob Nielsen

Understanding How Users View Application Performance by Peter Sevcik

How Fast Is Fast Enough by Peter Sevcik

Apdex web site "Apdex is a numerical measure of user satisfaction with the performance of enterprise applications, and reflects the effectiveness of IT investments in contributing to business objectives."

User Community Modeling Language (UCML 1.1™) for Performance Test Workloads by Scott Barber

SEI Load Test Planning Process by Mark McWhinney

Workload Characterization by Daniel A. Menascé

Gathering Performance Requirements by Manish Pande and Rajeshwari Ganesan

Using the Analytic Hierarchy Process (AHP) To Identify Performance Scenarios for Enterprise Applications by Nidhi Tiwari

Addressing Performance Requirements Using a Goal and Scenario-Oriented Approach by Zhiming Cai and Eric Yu

Method for Estimating the Number of Concurrent Users by Eric Man Wong

Observability by Adrian Cockcroft

Requirements-by-Example by Adriano Comai

Steve Seow's Blog, the author of Designing and Engineering Time

Modeling Tools

Tools that could be used on early stages of computer systems design and development when no system monitoring results exist. See other Modeling Tools in Performance Management section.

SPE·ED "a tool designed specifically to support the SPE methods and models defined in Connie U. Smith's book." "Using a small amount of data about envisioned software processing, SPE·ED creates and solves performance models, and presents visual results." Doesn’t have interfaces to monitoring data.

HyPerformix Performance Optimizer. Uses discrete event simulation modeling technology. System topology is descried by graphical diagrams. Software behavior is simulated by a scripting language. Has interfaces to different types of monitoring data.

Crovan PredictorV "uses predictive technology to find your system’s performance problems early in the development process"
    PredictorV User Guide

Performance

It is often difficult to separate information how to design systems with good performance (architecture, performance patterns, language structures, etc.) from information how to tune and deploy systems, quite often both sides are considered. Although more architecture- technology- and language - oriented links are placed here, a lot of related information can be found in the Tuning section.

Java
Java Performance Tuning
Performance Project at java.net
J2EE Performance for WebLogic, WebSphere, JBoss, etc.
TheServerSide.com  Enterprise Java Community
Scaling Your Java EE Applications, part 1 and part 2 by Wang Yu
J2EE Performance Optimization by Kingsum Chow, Intel
Java Caching System (JCS)
Caching Dynamic Content with JSP 2.0 by Andrei Cioroianu
IBM WebSphere Developer Technical Journal: The top Java EE best practices

Microsoft
Microsoft .NET Framework: Performance includes information on logging, tracing, profiling, and other diagnostic techniques for analyzing and monitoring .NET applications.
Improving .NET Application Performance and Scalability online version of the Microsoft Press book
Windows Performance Analysis Developer Center
Patterns & Practices Performance Wiki
(Semi) Official Developer Division Performance Engineering blog News and commentary on developing scalable Windows applications
TheServerSide.net Eneterprise .NET Community
ASP.NET 10 Tips for Writing High-Performance Web Applications
Rico Mariani's and Maoni's blogs about CLR performance

Web
Performance Matters blog by Chris Loosley
Ajax Performance blog by Ryan Breen
10 Realistic Steps to a Faster Web Site by Alexander Kirk

SOA
High Performance SOA by Jason Bloomberg, a high-level overview

Misc
MicroQuill SmartHeap
X Window System Application Performance Tuning by Kenton Lee

Profilers

Quest JProbe "...complete performance toolkit for Java code tuning. JProbe helps developers diagnose and resolve performance bottlenecks, memory leaks, excessive garbage collection, threading issues and coverage deficiencies in their J2EE and J2SE applications." JProbe Profiler Freeware available for Windows and Linux.

Intel VTune Performance Analyzer  "Integrated performance analysis and tuning environment that enables you to analyze your code's performance on Intel architecture processors." Windows and Linux. C++, Java/J2EE, .Net, Fortran. Free 30-day evaluation.

Compuware DevPartner "provides a comprehensive development, debugging and tuning solution to the challenges of application development, from concept to coding to completion. DevPartner products cover Microsoft, Java, 64-bit and driver development" Free DevPartner Community Edition available.

Rational PurifyPlus Memory corruption detection, memory leak detection, application performance profiling, code coverage analysis. Can not find any mention of Rational Quantify (was name for the Rational profiler) now, perhaps it is included in PurifyPlus now (Purify was a memory debugger). Windows, Linux and UNIX. Java , C/C++, managed VS.NET languages (including C# and VB.NET), Visual C/C++, and Visual Basic.

YourKit tools for profiling Java & .NET applications.

YourKit tools for profiling Java & .NET applications.

Fiddler Web Debugging Proxy, freeware

All that profilers should be used with big caution in load testing and production: in most cases they will not work due to huge performance overheads. There are some performance management tools that were developed for profiling and performance diagnostics under load.

Monitoring

Only basic monitoring (using operating systems tools and utilities) are considered here. See the Application Performance Management Tools section for production level monitoring and diagnostics.

Measuring and Monitoring NT Performance paper and Monitoring NT Performance slides by Jerry Rosenberg

Windows 2000 Performance Counters Reference

Introduction to Windows Server 2003's Performance Monitor

Understanding .NET Performance Counters

Understanding SQL Performance Counters

Important Counters for Web Testing from Microsoft

Access Windows Performance Monitor Counters from Java by Nicholas Whitehead

Jaqui Lynch's Publications: UNIX, AIX, and Linux performance tuning presentations provide a lot of information about monitoring

UNIX Performance Data Analysis by Ellen Friedman

Wilson Mar's performance monitoring notes

Topping top in Solaris 8 with prstat by Tom Kincaid and Andrei Dorofeev

Extreme Linux Performance Monitoring and Tuning

Extreme Linux Performance Monitoring Part II

Solving SAS Performance Problems: Employing Host Based Tools by Tony Brown

Proactive Application Monitoring by Alexandre Polozoff

MonitorTools.com Site devoted to monitoring tools

Instrumentation

ARM (Application Response Measurement) API to enable applications to provide information to measure business transactions from an end user perspective and the contributing components of response time in distributed applications. Now a standard of The Open Group. There are C and Java bindings.
      OpenArm an open source implementation of the Open Groups' ARM 4.0 Java interface.
      Monitoring and Diagnosing Applications with ARM 4.0 by Mark W Johnson, matching presentation
      CMG ARM Working Group page (looks a little outdated).
      Aprobe instrumentation technology to transparently insert new code at runtime from OC Systems

JMX (Java Management Extensions) "technology provides the tools for building distributed, Web-based, modular and dynamic solutions for managing and monitoring devices, applications, and service-driven networks. By design, this standard is suitable for adapting legacy systems, implementing new management and monitoring solutions, and plugging into those of the future."
      Design Patterns for JMX and Application Manageability by Justin Murray
      Best Practices and Design Patterns for JMX Development by Satadip Dutta and Justin Murray
      From black boxes to enterprises, Part 1: Management, JMX 1.1 style by Sing Li
      From black boxes to enterprises, Part 2: Beans, JMX 1.1 style by Sing Li
      From black boxes to enterprises, Part 3: Hands-on JMX integration by Sing Li
      List of JMX API Articles

The Logging & Instrumentation Application Block "is a component of Enterprise Library that allows developers to instrument their applications with logging and tracing calls. Log and trace messages can be routed to a choice of data sinks, including the Event Log, text files or WMI. This block is the successor of the Enterprise Instrumentation Framework (EIF)."
      Creating and Using Counters in .NET by John Paul Mueller, see pp.34-38

Simple Network Management Protocol (SNMP) is an application layer protocol that facilitates the exchange of management information between network devices. FAQ

Related Subjects

NASA Software Reliability page

More Reliable Software Faster and Cheaper – An Overview by John D. Musa

Software-Reliability-Engineered Testing by John D. Musa and James Widmaier

John Sellens' Reliability Page

Books

Click on the book or its title to see book information and reviews (if available) on Amazon.com