1 CSSE 477 – A bit more on Performance Steve Chenoweth Friday, 9/9/11 Week 1, Day 2 Right – Googling for “Performance” gets you everything from Lady Gaga.

Slides:



Advertisements
Similar presentations
Capacity Planning for LAMP Architectures John Allspaw Manager, Operations Flickr.com Web Builder 2.0 Las Vegas.
Advertisements

Fast Data at Massive Scale Lessons Learned at Facebook Bobby Johnson.
IT253: Computer Organization
Advanced Oracle DB tuning Performance can be defined in very different ways (OLTP versus DSS) Specific goals and targets must be set => clear recognition.
1 CS533 Modeling and Performance Evaluation of Network and Computer Systems Capacity Planning and Benchmarking (Chapter 9)
CS1104: Computer Organisation School of Computing National University of Singapore.
TU/e Processor Design 5Z032 1 Processor Design 5Z032 The role of Performance Henk Corporaal Eindhoven University of Technology 2009.
1 Software Architecture CSSE 477: Week 5, Day 1 Statistical Modeling to Achieve Maintainability Steve Chenoweth Office Phone: (812) Cell: (937)
NETE4631:Capacity Planning (3)- Private Cloud Lecture 11 Suronapee Phoomvuthisarn, Ph.D. /
What will my performance be? Resource Advisor for DB admins Dushyanth Narayanan, Paul Barham Microsoft Research, Cambridge Eno Thereska, Anastassia Ailamaki.
WELCOME TO THETOPPERSWAY.COM
1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems.
1 CSSE 377 – Intro to Availability & Reliability Part 2 Steve Chenoweth Tuesday, 9/13/11 Week 2, Day 2 Right – Pictorial view of how to achieve high availability.
CS CS 5150 Software Engineering Lecture 19 Performance.
Software Performance Engineering - SPE HW - Answers Steve Chenoweth CSSE 375, Rose-Hulman Tues, Oct 23, 2007.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 19 Performance of Computer Systems.
Reliability Week 11 - Lecture 2. What do we mean by reliability? Correctness – system/application does what it has to do correctly. Availability – Be.
Queueing Systems They’re EVERYWHERE!. Basic Concept Service Request... Done Numerous requests made for service Lines back up waiting for service Waiting.
Software Performance Engineering Steve Chenoweth CSSE 375, Rose-Hulman Tues, Oct 23, 2007.
Chapter 14 Chapter 14: Server Monitoring and Optimization.
CS 501: Software Engineering Fall 2000 Lecture 19 Performance of Computer Systems.
1 CSSE 477 – Intro to Performance Steve Chenoweth Friday, 9/2/11 Week 0, Day 2 Right – A close analogy to performance as we mean it – Danica Patrick in.
CS CS 5150 Software Engineering Lecture 25 Performance.
1 Lecture 24: Interconnection Networks Topics: communication latency, centralized and decentralized switches (Sections 8.1 – 8.5)
Chapter 4 Assessing and Understanding Performance
1 Multiple class queueing networks Mean Value Analysis - Open queueing networks - Closed queueing networks.
1 Software Testing and Quality Assurance Lecture 40 – Software Quality Assurance.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 22 Performance of Computer Systems.
OS Fall ’ 02 Performance Evaluation Operating Systems Fall 2002.
Advanced Distributed Software Architectures and Technology group ADSaT 1 Scalability & Availability Paul Greenfield CSIRO.
1 Chapter 4. 2 Measure, Report, and Summarize Make intelligent choices See through the marketing hype Key to understanding underlying organizational motivation.
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
Virtual Memory Tuning   You can improve a server’s performance by optimizing the way the paging file is used   You may want to size the paging file.
Analysis of Simulation Results Andy Wang CIS Computer Systems Performance Analysis.
1 Computer Performance: Metrics, Measurement, & Evaluation.
جلسه دهم شبکه های کامپیوتری به نــــــــــــام خدا.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Your First Azure Application Michael Stiefel Reliable Software, Inc.
Software Performance Testing Based on Workload Characterization Elaine Weyuker Alberto Avritzer Joe Kondek Danielle Liu AT&T Labs.
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 22 Performance of Computer Systems.
Quality of Service Karrie Karahalios Spring 2007.
Block1 Wrapping Your Nugget Around Distributed Processing.
1 Voice Traffic Engineering & Management. 2 PSTN and PBX networks are designed with 2 objectives: Maximize usage of their circuits Maximize usage of their.
(A radical interpretation) Tomo Lennox Bow Tie computer services Why Agile Works.
1 CS/EE 362 Hardware Fundamentals Lecture 9 (Chapter 2: Hennessy and Patterson) Winter Quarter 1998 Chris Myers.
1 Planning – Agile Style Highsmith, Ch 7 All kinds of iterations! CSSE579 Session 3 Part 1.
1 Challenges in Scaling E-Business Sites  Menascé and Almeida. All Rights Reserved. Daniel A. Menascé Department of Computer Science George Mason.
1 Design and Integration: Part 2. 2 Plus Delta Feedback Reading and lecture repeat Ambiguous questions on quizzes Attendance quizzes Boring white lecture.
CS 360 Lecture 11.  In most computer systems:  The cost of people (development) is much greater than the cost of hardware  Yet, performance is important.
1 Part VII Component-level Performance Models for the Web © 1998 Menascé & Almeida. All Rights Reserved.
How Much Memory Do I Need? Jack Opgenorth October, 2004.
NETE4631: Network Information System Capacity Planning (2) Suronapee Phoomvuthisarn, Ph.D. /
Capacity Planning Plans Capacity Planning Operational Laws
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
Internet Applications: Performance Metrics and performance-related concepts E0397 – Lecture 2 10/8/2010.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 23 Performance of Computer Systems.
Lecture 12 Page 1 CS 111 Online Using Devices and Their Drivers Practical use issues Achieving good performance in driver use.
G046 Lecture 04 Task C Briefing Notes Mr C Johnston ICT Teacher
Capacity Planning in a Virtual Environment Chris Chesley, Sr. Systems Engineer
Software System Performance CS 560. Performance of computer systems In most computer systems:  The cost of people (development) is much greater than.
Lecture 4 Page 1 CS 111 Summer 2013 Scheduling CS 111 Operating Systems Peter Reiher.
Performance Metrics and Performance Engineering
Software Architecture in Practice
Architecture & System Performance
Architecture & System Performance
Load Testing January 2018 René Ernst.
Software Architecture in Practice
Project Planning is a waste of time!!!
Building a Database on S3
Presentation transcript:

1 CSSE 477 – A bit more on Performance Steve Chenoweth Friday, 9/9/11 Week 1, Day 2 Right – Googling for “Performance” gets you everything from Lady Gaga ( gallery/ /lady-gaga-explosive- performance-03/ ) to a weird bicycle ( Exotic/Performance_Bicycle ) to a cloud database comparison ( cessors/c7/ ). gallery/ /lady-gaga-explosive- performance-03/ Exotic/Performance_Bicyclehttp:// cessors/c7/

2 Today Each team explain design changes and results (5 min. presentations with before / after demo.) More about performance, now that you’ve tried improving it!

3 Software performance - Strategic things to consider A mistake to wait and try to tune a big, new system at the end. –You can get by with this if you’re doing incremental changes to an existing system. The big, new system needs software performance engineering. –Using a spreadsheet –Can move from there to queueing models or discrete event simulation of key parts

4 Your assignment – not easy On the project you selected to work on, “Improve the performance by 100%.” But this happens in industry – –What if we grow to twice as many customers, all using our servers? –Or, some part of the system has new, competing uses – like other types of people using its data?

5 When do you need to know performance? For a new system: –Could be months ahead, as you are building it. –Customers need to budget for and order servers. For an existing product offering: –You probably know more, from existing customer experience. –But also need to predict system needs for customers’ growth in usage.

6 What are the aspects of performance requirements? Capacity – how big a system has to be, or how fast –Like disk capacity or bandwidth Throughput – How many things per unit of time it can do –Like how many transactions per second Latency – How much delay can be tolerated –“Jitter” is a close relative of this Some of these terms differ in usage in the software industry!

7 Example of where to start Client is Time Warning, and wants a new system to handle pay per view subscriptions. These come in via set-top boxes, within their network. They have 5 million customers in their biggest metropolitan service area. Maximum “take rate” for any PPV event is 3%. Half of those who subscribe do so in the hour before the show starts.  For a single CPU to handle all this, what’s the maximum CPU time that could be spent booking one customer? This becomes a performance “target” based on requirements. TIME WARNING CABLE

8 Bass’s Performance Remedies Review - From a week ago -- Look at: –Resource demand –Resource management –Resource arbitration If you had a user interface based system, then speeding up the user activity was another alternative.

9 But, what do you worry about? Use 80 / 20 rule – –Look for the 20% of the functions of your system that will use up 80% of the resources. –Don’t worry about the rest, unless you have to. This means, for instance, don’t waste your time “shining” all the code for performance. Decide first what code deserves taking extra time to optimize it.

10 And how do you worry about it? Find peak periods – like we did in the example. Make assumptions, until proven wrong. Like: –Little’s Law – commonly used in statistics of performance: Occupancy of a resource = Arrival rate x Mean service time, or Total seconds used = events / sec x # sec for each

11 What do “targets” turn into? You know Time Warning wants a system that will “handle” transactions per second peak. You need to know what that “means” to your system – –Do you only book the customers for billing? –Do you actually have to enable their set-top boxes –Do you have to allocate the cable system’s bandwidth, and stop when it runs out?

12 Make sure you know what the performance requirement “means” Some of these tasks would be much harder than others! Is the bottom line that Time Warning is out of bandwidth, and the probably really isn’t in the system that books customers at all? If they already have a system to do the required task, start by studying what it does.

13 Then start designing… Pick an architectural style that fits what the system has to do. –More on styles coming up next week! –Like client/server or pipe-and-filter Then “allocate budgets” across the components of the architecture: –Like on the spreadsheet from last Friday  –“How much time can be spent in this box?” “How much of that in this software task?” –The budgets help decide proper design!

14 Performance Engineering with a Spreadsheet Typical new system design analysis – For a network management system Note: Having everything add up to only 60% allows for some “blocked time” Note: These are all resource consumption estimates

15 Budgets become vs Estimates which become Measurements As people do detailed design, they know if they can make those numbers or not. You keep looking at the budget, because that’s what tells you if the whole thing will run fast enough. As pieces of the system hit the lab, you can measure what really happens.

16 Typical remedies for bottlenecks Look for inefficiencies in the software –Like repeated database calls, waiting to synchronize results, wrong priorities –Bugs like deadlocks and timeouts See link to case history, in notes for this slide Multi-thread the software Get rid of competing tasks on the system Add processors and distribute across Add servers and distribute tasks

17 What do performance experts add? Most experts have some specific type of skill, like: –Software performance engineering –Queueing studies –Discrete event simulation studies You should already be close to knowing how the system will work, call them for a refined view or for confirmation. E.g., –If the system already is too slow, then the effects of queueing make it even worse!

18 Queueing example Single-server “M/M/1” model “queueing curve”: Response Time Utilization

19 Translating queueing-related requirements Requirement: “Response time less than 3 seconds, 95% of the time”. If you have an M/M/1 distribution of incoming work, what should the average response time therefore be? R p = R.50 x log e (1/(1-p)) So, 3 = R.50 x log e (1/(1-.95)), and R.50 = 3/2.995 = 1 sec, more or less.