CS 147: Computer Systems Performance Analysis

Similar documents
ECE 669 Parallel Computer Architecture

JOURNALING FILE SYSTEMS. CS124 Operating Systems Winter , Lecture 26

Inside the PostgreSQL Shared Buffer Cache

15 Sharing Main Memory Segmentation and Paging

Caching Basics. Memory Hierarchies

Modeling Page Replacement: Stack Algorithms. Design Issues for Paging Systems

6.828: OS/Language Co-design. Adam Belay

16 Sharing Main Memory Segmentation and Paging

Java Without the Jitter

CS162 Operating Systems and Systems Programming Lecture 11 Page Allocation and Replacement"

PROCESS VIRTUAL MEMORY. CS124 Operating Systems Winter , Lecture 18

Example File Systems Using Replication CS 188 Distributed Systems February 10, 2015

Background. $VENDOR wasn t sure either, but they were pretty sure it wasn t their code.

NOW Handout Page 1. Recap. Protocol Design Space of Snooping Cache Coherent Multiprocessors. Sequential Consistency.

Clean & Speed Up Windows with AWO

3 Continuous Integration 3. Automated system finding bugs is better than people

PROCESS VIRTUAL MEMORY PART 2. CS124 Operating Systems Winter , Lecture 19

Page 1. Goals for Today" TLB organization" CS162 Operating Systems and Systems Programming Lecture 11. Page Allocation and Replacement"

Memory. From Chapter 3 of High Performance Computing. c R. Leduc

InnoDB Scalability Limits. Peter Zaitsev, Vadim Tkachenko Percona Inc MySQL Users Conference 2008 April 14-17, 2008

Simulation. Outline. Common Mistakes in Simulation (3 of 4) Common Mistakes in Simulation (2 of 4) Performance Modeling Lecture #8

Page Replacement. (and other virtual memory policies) Kevin Webb Swarthmore College March 27, 2018

SOFT 437. Software Performance Analysis. Ch 7&8:Software Measurement and Instrumentation

FairCom White Paper Caching and Data Integrity Recommendations

Reliable programming

Getting started with simulating data in R: some helpful functions and how to use them Ariel Muldoon August 28, 2018

Recall: Address Space Map. 13: Memory Management. Let s be reasonable. Processes Address Space. Send it to disk. Freeing up System Memory

Within Kodi you can add additional programs called addons. Each of these addons provides access to lots of different types of video content.

Computer Architecture. Lecture 8: Virtual Memory

Memory Management. Kevin Webb Swarthmore College February 27, 2018

(Refer Slide Time: 01:25)

10 Things to expect from a DB2 Cloning Tool

Operating System Principles: Memory Management Swapping, Paging, and Virtual Memory CS 111. Operating Systems Peter Reiher

Memory Management: Virtual Memory and Paging CS 111. Operating Systems Peter Reiher

Chapter 4: Memory Management. Part 1: Mechanisms for Managing Memory

Process Time. Steven M. Bellovin January 25,

The Right Read Optimization is Actually Write Optimization. Leif Walsh

3/3/2014! Anthony D. Joseph!!CS162! UCB Spring 2014!

This is the forth SAP MaxDB Expert Session and this session covers the topic database performance analysis.

Ext3/4 file systems. Don Porter CSE 506

CS252 S05. Main memory management. Memory hardware. The scale of things. Memory hardware (cont.) Bottleneck

YOUR PERL IS SLOW. (and it does not have to be)

Tradeoff between coverage of a Markov prefetcher and memory bandwidth usage

Four Essential Steps for Removing Risk and Downtime from Your POWER9 Migration

I Want To Go Faster! A Beginner s Guide to Indexing

Dynamic Control Hazard Avoidance

CS 4510/9010 Applied Machine Learning

Chapter 8: Virtual Memory. Operating System Concepts

Everything You Ever Wanted To Know About Resource Scheduling... Almost

!! What is virtual memory and when is it useful? !! What is demand paging? !! When should pages in memory be replaced?

High Performance Solid State Storage Under Linux

OPERATING SYSTEMS. G.C.E. Advanced Level ICT

CS 241 Honors Memory

ò Very reliable, best-of-breed traditional file system design ò Much like the JOS file system you are building now

CS 136: Advanced Architecture. Review of Caches

VERITAS Storage Foundation 4.0 for Oracle

CS Computer Architecture

2. PICTURE: Cut and paste from paper

Software Engineering /48

OS-caused Long JVM Pauses - Deep Dive and Solutions

Got Scary Data? Halloween data quality tip sheet. take your data from bone-chilling to bona fide with these 7 steps

Chapter 9: Virtual-Memory

Scheduling Mar. 19, 2018

Developing MapReduce Programs

Locality and The Fast File System. Dongkun Shin, SKKU

ChatScript Finaling a Bot Manual Bruce Wilcox, Revision 12/31/13 cs3.81

Outline Key Management CS 239 Computer Security February 9, 2004

Chapter 13: I/O Systems

Notes on Turing s Theorem and Computability

Lecture S3: File system data layout, naming

High Reliability Systems. Lloyd Moore, President

Performance evaluation and benchmarking of DBMSs. INF5100 Autumn 2009 Jarle Søberg

Software Testing CS 408

Page replacement algorithms OS

CS 326: Operating Systems. CPU Scheduling. Lecture 6

Big Data Infrastructure CS 489/698 Big Data Infrastructure (Winter 2016)

Network Load Balancing Methods: Experimental Comparisons and Improvement

FILE SYSTEMS. CS124 Operating Systems Winter , Lecture 23

Performance evaluation and. INF5100 Autumn 2007 Jarle Søberg

Chapter 6 Memory 11/3/2015. Chapter 6 Objectives. 6.2 Types of Memory. 6.1 Introduction

Virtual Memory #2 Feb. 21, 2018

SQL Server 2014 In-Memory OLTP: Prepare for Migration. George Li, Program Manager, Microsoft

EE 4683/5683: COMPUTER ARCHITECTURE

Lecture - 4. Measurement. Dr. Soner Onder CS 4431 Michigan Technological University 9/29/2009 1

Lecture#16: VM, thrashing, Replacement, Cache state

Condusiv s V-locity Server Boosts Performance of SQL Server 2012 by 55%

CS-537: Midterm Exam (Fall 2008) Hard Questions, Simple Answers

UBC: An Efficient Unified I/O and Memory Caching Subsystem for NetBSD

CS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2015 Lecture 25

Past: Making physical memory pretty

Slide Set 9. for ENCM 369 Winter 2018 Section 01. Steve Norman, PhD, PEng

CS510 Operating System Foundations. Jonathan Walpole

Chapter 9: Virtual Memory

CS 450 Fall xxxx Final exam solutions. 2) a. Multiprogramming is allowing the computer to run several programs simultaneously.

WHEN YOUR COMPUTER SLOWS TO A CRAWL

Journaling. CS 161: Lecture 14 4/4/17

Queue Manager Restart Times for IBM MQ V9.1 & V9.1.1

Memory Hierarchy. Memory Flavors Principle of Locality Program Traces Memory Hierarchies Associativity. (Study Chapter 5)

COMPUTER ARCHITECTURE. Virtualization and Memory Hierarchy

OS DESIGN PATTERNS II. CS124 Operating Systems Fall , Lecture 4

Transcription:

CS 147: Computer Systems Performance Analysis Test Loads CS 147: Computer Systems Performance Analysis Test Loads 1 / 33

Overview Overview Overview 2 / 33

Test Load Design Test Load Design Test Load Design Most experiments require applying test loads to system General characteristics of test loads already discussed How do we design test loads? Most experiments require applying test loads to system General characteristics of test loads already discussed How do we design test loads? 3 / 33

Types of Test Loads Types of Test Loads Types of Test Loads Real users Traces Load-generation programs Real users Traces Load-generation programs 4 / 33

5 / 33 Loads Caused by Real Users Loads Caused by Real Users Loads Caused by Real Users Put real people in front of your system Two choices: 1. Have them run pre-arranged set of tasks 2. Have them do what they d normally do Always a difficult approach Labor-intensive Impossible to reproduce given load Load is subject to many external influences But highly realistic Put real people in front of your system Two choices: 1. Have them run pre-arranged set of tasks 2. Have them do what they d normally do Always a difficult approach Labor-intensive Impossible to reproduce given load Load is subject to many external influences But highly realistic

6 / 33 Traces Traces Traces Collect set of commands/accesses issued to system under test (or similar system) Replay against your system Some traces of common activities available from others (e.g., file accesses) But often don t contain everything you need Collect set of commands/accesses issued to system under test (or similar system) Replay against your system Some traces of common activities available from others (e.g., file accesses) But often don t contain everything you need

7 / 33 Issues in Using Traces Issues in Using Traces Issues in Using Traces May be hard to alter or extend Accuracy of trace may depend on behavior of system If a subsystem is twice as slow in your system as in traced system, maybe results would have been different Only truly representative of traced system and execution May be hard to alter or extend Accuracy of trace may depend on behavior of system If a subsystem is twice as slow in your system as in traced system, maybe results would have been different Only truly representative of traced system and execution E.g., processes might run at different rates depending on I/O vs. CPU mix

8 / 33 Running Traces Running Traces Running Traces Need process that reads trace, keeps track of progress, and issues commands from trace when appropriate Process must be reasonably accurate in timing But must also have little performance impact If trace is large, can t keep it all in main memory So be careful of disk overheads Often best to read trace from network Need process that reads trace, keeps track of progress, and issues commands from trace when appropriate Process must be reasonably accurate in timing But must also have little performance impact If trace is large, can t keep it all in main memory So be careful of disk overheads Often best to read trace from network

9 / 33 Load-Generation Programs Load-Generation Programs Load-Generation Programs Create model for load you want to apply Write program implementing that model Program issues commands & requests synthesized from model E.g., if model says open file, program builds appropriate open() command Create model for load you want to apply Write program implementing that model Program issues commands & requests synthesized from model E.g., if model says open file, program builds appropriate open() command

10 / 33 Building the Model Building the Model Building the Model Tradeoff between ease of creation and use of model vs. its accuracy Base model on everything you can find out about the real system behavior Which may include examining traces Consider whether model can be memoryless, or requires keeping track of what s already happened (Markov) Tradeoff between ease of creation and use of model vs. its accuracy Base model on everything you can find out about the real system behavior Which may include examining traces Consider whether model can be memoryless, or requires keeping track of what s already happened (Markov)

11 / 33 Using the Model Using the Model Using the Model May require creation of test files, or processes, or network connections Model should include how they should be created Program that implements models should have minimum performance impact on system under test May require creation of test files, or processes, or network connections Model should include how they should be created Program that implements models should have minimum performance impact on system under test

12 / 33 Applying Test Loads Applying Test Loads Applying Test Loads Most experiments will need multiple repetitions Details covered later in course Results most accurate if each repetition runs in identical conditions Test software should work hard to duplicate conditions on each run Requires thorough understanding of system Most experiments will need multiple repetitions Details covered later in course Results most accurate if each repetition runs in identical conditions Test software should work hard to duplicate conditions on each run Requires thorough understanding of system

Example of Applying Test Loads Example of Applying Test Loads Example of Applying Test Loads Using Ficus experiments discussed earlier, want performance impact of update propagation for multiple replicas Test load is set of benchmarks involving file access & other activities Must apply test load for varying numbers of replicas Using Ficus experiments discussed earlier, want performance impact of update propagation for multiple replicas Test load is set of benchmarks involving file access & other activities Must apply test load for varying numbers of replicas 13 / 33

14 / 33 Factors in Designing This Experiment Factors in Designing This Experiment Factors in Designing This Experiment Setting up volumes and replicas Network traffic Other load on test machines (from outside) Caching effects Automation of experiment Very painful to start each run by hand Setting up volumes and replicas Network traffic Other load on test machines (from outside) Caching effects Automation of experiment Very painful to start each run by hand

Experiment Setup Experiment Setup Experiment Setup Need volumes to read and write, and replicas of each volume on various machines Must be certain that setup completes before we start running experiment Need volumes to read and write, and replicas of each volume on various machines Must be certain that setup completes before we start running experiment 15 / 33

Network Traffic Issues Network Traffic Issues Network Traffic Issues If experiment is distributed (like ours), how is it affected by other traffic on network? Is traffic seen on network used in test similar to traffic expected on network you would actually use? If not, do you need to run on isolated network? And/or generate appropriate background network load? If experiment is distributed (like ours), how is it affected by other traffic on network? Is traffic seen on network used in test similar to traffic expected on network you would actually use? If not, do you need to run on isolated network? And/or generate appropriate background network load? 16 / 33

17 / 33 Controlling Other Load Controlling Other Load Controlling Other Load Generally, want to have as much control as possible over other processes running on test machines Ideally, use dedicated machines But also be careful about background and periodic jobs In Unix context, check carefully on cron and network-related daemons Tough question: use realistic environment or kill all interfering processes? Generally, want to have as much control as possible over other processes running on test machines Ideally, use dedicated machines But also be careful about background and periodic jobs In Unix context, check carefully on cron and network-related daemons Tough question: use realistic environment or kill all interfering processes?

18 / 33 Caching Effects Caching Effects Caching Effects Many types of jobs run much faster if things are in cache Other things also change Is caching effect part of what you re measuring? If not, do something to clean out caches between runs Or arrange experiment so caching doesn t help But sometimes you should measure caching Many types of jobs run much faster if things are in cache Other things also change Is caching effect part of what you re measuring? If not, do something to clean out caches between runs Or arrange experiment so caching doesn t help But sometimes you should measure caching

19 / 33 Automating Experiments Automating Experiments Automating Experiments For all but very small experiments, it pays to automate Don t want to start each run by hand Automation must be done with care Make sure previous run is really complete Make sure you completely reset your state Make sure the data is really collected! Be sure automation records all experimental conditions For all but very small experiments, it pays to automate Don t want to start each run by hand Automation must be done with care Make sure previous run is really complete Make sure you completely reset your state Make sure the data is really collected! Be sure automation records all experimental conditions

Common Mistakes in Benchmarking Common Mistakes in Benchmarking Common Mistakes in Benchmarking Many people have made these You will make some of them, too But watch for them, so you don t make too many Many people have made these You will make some of them, too But watch for them, so you don t make too many 20 / 33

21 / 33 Only Testing Average Behavior Only Testing Average Behavior Only Testing Average Behavior Test workload should usually include divergence from average workload Few workloads always remain at their average Behavior at extreme points is often very different Particularly bad if only average behavior is used Test workload should usually include divergence from average workload Few workloads always remain at their average Behavior at extreme points is often very different Particularly bad if only average behavior is used

22 / 33 Ignoring Skewness of Device Demands Ignoring Skewness of Device Demands Ignoring Skewness of Device Demands More generally, not including skewness of any component E.g., distribution of file accesses among set of users Leads to unrealistic conclusions about how system behaves More generally, not including skewness of any component E.g., distribution of file accesses among set of users Leads to unrealistic conclusions about how system behaves

Loading Levels Controlled Inappropriately Loading Levels Controlled Inappropriately Loading Levels Controlled Inappropriately Not all methods of controlling load are equivalent Choose methods that capture effect you are testing for Prefer methods allowing more flexibility in control over those allowing less Not all methods of controlling load are equivalent Choose methods that capture effect you are testing for Prefer methods allowing more flexibility in control over those allowing less 23 / 33

24 / 33 Caching Effects Ignored Caching Effects Ignored Caching Effects Ignored Caching occurs many places in modern systems Performance on given request usually very different depending on cache hit or miss Must understand how cache works Must design experiment to use it realistically Always document whether cache was warm or cold And how warming/cooling was done Caching occurs many places in modern systems Performance on given request usually very different depending on cache hit or miss Must understand how cache works Must design experiment to use it realistically Always document whether cache was warm or cold And how warming/cooling was done

Inappropriate Buffer Sizes Inappropriate Buffer Sizes Inappropriate Buffer Sizes Slight changes in buffer sizes can greatly affect performance in many systems Make sure you match reality Slight changes in buffer sizes can greatly affect performance in many systems Make sure you match reality 25 / 33

Inappropriate Workload Sizes Inappropriate Workload Sizes Inappropriate Workload Sizes Many test workloads are unrealistically small System capacity is ever-growing Be sure you actually stress the system Many test workloads are unrealistically small System capacity is ever-growing Be sure you actually stress the system 26 / 33

27 / 33 Ignoring Sampling Inaccuracies Ignoring Sampling Inaccuracies Ignoring Sampling Inaccuracies Remember that your samples are random events Use statistical methods to analyze them Beware of sampling techniques whose periodicity interacts with what you re looking for Best to randomize experiment order Remember that your samples are random events Use statistical methods to analyze them Beware of sampling techniques whose periodicity interacts with what you re looking for Best to randomize experiment order

28 / 33 Ignoring Monitoring Overhead Ignoring Monitoring Overhead Ignoring Monitoring Overhead Primarily important in design phase If possible, must minimize overhead to point where it is not relevant But also important to consider it in analysis Primarily important in design phase If possible, must minimize overhead to point where it is not relevant But also important to consider it in analysis

Not Validating Measurements Not Validating Measurements Not Validating Measurements Just because your measurement says something is so, it isn t necessarily true Extremely easy to make mistakes in experimentation Check whatever you can Treat surprising measurements especially carefully Just because your measurement says something is so, it isn t necessarily true Extremely easy to make mistakes in experimentation Check whatever you can Treat surprising measurements especially carefully 29 / 33

30 / 33 Not Ensuring Constant Initial Conditions Not Ensuring Constant Initial Conditions Not Ensuring Constant Initial Conditions Repeated runs are only comparable if initial conditions are the same Not always easy to undo everything previous run did E.g., same state of disk fragmentation as before But do your best And understand where you don t have control in important cases Repeated runs are only comparable if initial conditions are the same Not always easy to undo everything previous run did E.g., same state of disk fragmentation as before But do your best And understand where you don t have control in important cases

Not Measuring Transient Performance Not Measuring Transient Performance Not Measuring Transient Performance Many systems behave differently at steady state than at startup (or shutdown) That s not always everything we care about Understand whether you should care If you should, measure transients too Not all transients are due to startup/shutdown; be sure you consider those ones too Many systems behave differently at steady state than at startup (or shutdown) That s not always everything we care about Understand whether you should care If you should, measure transients too Not all transients are due to startup/shutdown; be sure you consider those ones too 31 / 33

32 / 33 Performance Comparison Using Device Utilizations Performance Comparison Using Device Utilizations Performance Comparison Using Device Utilizations Sometimes this is right thing to do But only if device utilization is metric of interest Remember that faster processors will have lower utilization on same load And that s not a bad thing Sometimes this is right thing to do But only if device utilization is metric of interest Remember that faster processors will have lower utilization on same load And that s not a bad thing

Lots of Data, Little Analysis Lots of Data, Little Analysis Lots of Data, Little Analysis The data isn t the product! The analysis is! So design experiment to leave time for sufficient analysis If things go wrong, alter experiments to still leave analysis time The data isn t the product! The analysis is! So design experiment to leave time for sufficient analysis If things go wrong, alter experiments to still leave analysis time 33 / 33