Introduction to System Performance Design



Similar documents
Module Modeling and Analysis: Inputs and Uncertainties

Workshop Reflective Practice; Critical Thinking

The Role and Task of the System Architect

Buskerud University College: Program Systems Engineering

Modeling and Analysis: Life Cycle Models

How to appraise or assess an architect?

Module System Architecture Context

Module Product Families and Generic Developments

High Level Modeling to Support Software Design

Custom Software Development Approach

Systems Engineering Master Project

Lowering the Total Cost of Ownership (TCO) of Data Warehousing

Industry Master; Engineering Work Experience part-time Job

Architectural Refactoring; illustrated by MR

Module Modeling and Analysis: Application and Life Cycle Modeling

Systems Engineering Master Project

Master Project; Execution Phase

Optimizing Performance. Training Division New Delhi

High-Performance Nested Virtualization With Hitachi Logical Partitioning Feature

QLIKVIEW SERVER MEMORY MANAGEMENT AND CPU UTILIZATION

An Esri White Paper June 2010 Tracking Server 10

ZK Performance Test. ZK Community, Professional, Enterprise Edition. Sam Chuang Timothy Clare. Potix Corportation

The Power of Predictive Analytics

CHAPTER 17: File Management

Application Architectures

SOLUTION BRIEF. IMAT Enhances Clinical Trial Cohort Identification. imatsolutions.com

Multi-view Architecting

An Oracle White Paper June High Performance Connectors for Load and Access of Data from Hadoop to Oracle Database

Online Transaction Processing in SQL Server 2008

CA Workload Automation Agents for Mainframe-Hosted Implementations

The Scientific Data Mining Process

Wildix Management System (WMS) White Paper

APPLICATION COMPLIANCE AUDIT & ENFORCEMENT

With Cloud Computing, Who Needs Performance Testing?

I N T E R S Y S T E M S W H I T E P A P E R INTERSYSTEMS CACHÉ AS AN ALTERNATIVE TO IN-MEMORY DATABASES. David Kaaret InterSystems Corporation

Distributed Database Management Systems for Information Management and Access

Role of the Chief Architect.

Introduction. Part I: Finding Bottlenecks when Something s Wrong. Chapter 1: Performance Tuning 3

Software Reuse; Caught between strategic importance and practical feasibility

Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila

Mark Bennett. Search and the Virtual Machine

DRAFTING AND DESIGN. For additional program information see:

RAID Performance Analysis

Chapter: IV. IV: Research Methodology. Research Methodology

Data Warehouses & OLAP

How good can databases deal with Netflow data

CONCEPTUALIZING BUSINESS INTELLIGENCE ARCHITECTURE MOHAMMAD SHARIAT, Florida A&M University ROSCOE HIGHTOWER, JR., Florida A&M University

SQL Server Business Intelligence on HP ProLiant DL785 Server

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Designing for Maintainability

The Edge Editions of SAP InfiniteInsight Overview

Semester Thesis Traffic Monitoring in Sensor Networks

Chapter -5 SCALABILITY AND AVAILABILITY

POLAR IT SERVICES. Business Intelligence Project Methodology

Objectives. Distributed Databases and Client/Server Architecture. Distributed Database. Data Fragmentation

Program planning in large engineering projects.

PASTA Abstract. Process for Attack S imulation & Threat Assessment Abstract. VerSprite, LLC Copyright 2013

Network Management and Monitoring Software

GCE APPLIED ICT A2 COURSEWORK TIPS

Chapter 3. Database Environment - Objectives. Multi-user DBMS Architectures. Teleprocessing. File-Server

SaaS & Cloud Application Development & Delivery

The Classical Architecture. Storage 1 / 36

Performance with the Oracle Database Cloud

16.1 MAPREDUCE. For personal use only, not for distribution. 333

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

Microsoft SQL Server: MS Performance Tuning and Optimization Digital

Introduction to Service Oriented Architectures (SOA)

Tushar Joshi Turtle Networks Ltd

Performance And Scalability In Oracle9i And SQL Server 2000

OPEN.MICHIGAN Database Project

Record-Level Access: Under the Hood

Defining, Modeling & Costing IT Services Integrating Service Level, Configuration & Financial Management Processes

The Google File System

QLIKVIEW ARCHITECTURE AND SYSTEM RESOURCE USAGE

CA Workload Automation Agents Operating System, ERP, Database, Application Services and Web Services

Applying Agile Methods in Rapidly Changing Environments

Design of Network Educating Information System Based on Use Cases Driven Shenwei Wang 1 & Min Guo 2

2011 FileTek, Inc. All rights reserved. 1 QUESTION

Software Cost. Discounted STS Rate Units Total $0.00 $0.00 $0.00 $0.00 Total $0.00

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Why Relative Share Does Not Work

Bachelor Module Guide (ITL24) Bachelor Module Guide Process Management CREDITS. Aims and Objectives of this module:

Virtualization. P. A. Wilsey. The text highlighted in green in these slides contain external hyperlinks. 1 / 16

Windows Server Virtualization An Overview

This presentation provides an overview of the architecture of the IBM Workload Deployer product.

WHITE PAPER. Reducing Dormant Data: 7 Tips for Delivering Data Warehouse Performance and Cost Savings

Product Overview. Payroll & Personnel Data Warehouse

APPENDIX 1 USER LEVEL IMPLEMENTATION OF PPATPAN IN LINUX SYSTEM

Secondary Storage. Any modern computer system will incorporate (at least) two levels of storage: magnetic disk/optical devices/tape systems

Rackspace Cloud Databases and Container-based Virtualization

Scalable Internet Services and Load Balancing

Take An Internal Look at Hadoop. Hairong Kuang Grid Team, Yahoo! Inc

NoSQL and Hadoop Technologies On Oracle Cloud

Access Teams with Microsoft Dynamics CRM 2013

Modern SOA Testing. A Practitioners Guide to. July 2011

White Paper Take Control of Datacenter Infrastructure

An Oracle White Paper June Security and the Oracle Database Cloud Service

Network Back-up. Storage Networks Explained U. Troppens R. Erkens W. Müller 2004 John Wiley & Sons, Ltd ISBN:

HTML5 : carrier grade

Transcription:

Introduction to ystem Performance Design - What If... ample application code: store rogs vei 41 P.O. Box 235, NO-3603 Kongsberg Norway gaudisite@gmail.com Abstract What is ystem Performance? Why should a software engineer have knowledge of the other parts of the system, such as the Hardware, the Operating ystem and the Middleware? The applications that he/she writes are self-contained, so how can other parts have any influence? This introduction sketches the problem and shows that at least a high level understanding of the system is very useful in order to get optimal performance. Distribution This article or presentation is written as part of the Gaudí project. The Gaudí project philosophy is to improve by obtaining frequent feedback. requent feedback is pursued by an open creation process. This document is published as intermediate or nearly mature version to get feedback. urther distribution is allowed as long as the document remains complete and unchanged. All Gaudí documents are available at: http://www.gaudisite.nl/ version: 0.5 status: preliminary draft March 6, 2013

1 Introduction This article discusses a typical example of a performance problem during the creation of an additional function in an existing system context. We will use this example to formulate a problem statement. The problem statement is then used to identify ingredients to address the problem. 2 What if... Let s assume that the application asks for the display of 3 3 images to be displayed instanteneously. The author of the requirements specification wants to sharpen this specification and asks for the expected performance of feasible solutions. or this purpose we assume a solution, for instance an image retrieval function with code that looks like the code in igure 1. How do we predict or estimate the expected performance based on this code fragment? application need: at event 3*3 show 3*3 images instanteneous design ample application code: design or alternative application code: event 3*3 -> show 3*3 < 3*3> <row 1> <col 1><image 1,1></col 1> <col 2><image 1,2></col 2> <col 3><image 1,3></col 3> </row 1> <row 2> <col 1><image 1,1></col 1> <col 2><image 1,2></col 2> <col 3><image 1,3></col 3> </row 1> <row 2> <col 1><image 1,1></col 1> <col 2><image 1,2></col 2> <col 3><image 1,3></col 3> </row 3> </ 3*3> igure 1: Image Retrieval Performance If we want to estimate the performance we have to know what happens in the system in the retrieve_image function. We may have a simple system, as shown in igure 2, where the retrieve_image function is part of a user interface process. This process reads image data directly form the hard disk based store and renders the image directly to the. Based on these assumptions we can estimate the performance. This estimation will be based on the disk transfer rate and the rendering rate. However, the system might be slightly more complex, as shown in igure 3. Instead of one process we now have multiple processes involved: database, user interface process and server. Process communication becomes an additional contribution to the time needed for the image retrieval. If the process communication is image based (every call to retrieve_image triggers a database access and a transfer to the server) then 2 9 process communications takes place. Every process communication costs time due to overhead as well as due to copying image Introduction to ystem Performance Design page: 1

What If... ample application code: store igure 2: traight orward Read and Display data from one process context to another process context. Also the database access will contribute to the total time. Database queries cost a significant amount of time. What If... database update retrieve server ample application code: igure 3: More Process Communication The actual performance might be further negatively impacted by the overhead costs of the meta-information. Meta-information is the describing information of the image, typically tens to hundreds of attributes. The amount of data of metainformation, measured in bytes, is normally orders of magnitude smaller than the amount of pixel data. The initial estimation ignores the cost of meta-information, because the of amount of data is insignificant. However, the chosen implementation does have a significant impact on the cost of meta-information handling. igure 4 shows an example where the attributes of the meta-information are internally mapped on COM objects. The implementation causes a complete factory construction for every attribute that is retrieved. The cost of such a construction is 80µsec. With 100 attributes per image we get a total construction overhead of 9 100 cdot80µs = 72ms. This cost is significant, because it is in the same order of magnitude as image transfer and rendering operations. igure 5 shows I/O overhead as a last example of potential hidden costs. If the granularity of I/O transfers is rather fine, for instance based on image lines, then Introduction to ystem Performance Design page: 2

What If... Meta ------ --------- -------- Attributes Image data ample application code: Attribute = 1 COM object 100 attributes / image 9 images = 900 COM objects 1 COM object = 80µs 9 images = 72 ms database update retrieve server igure 4: Meta Information Realization Overhead the I/O overhead becomes very significant. If we assume that images are 512 2, and if we assume t I/O = 1ms, then the total overhead becomes 9 512 1ms 4.5s! What If... - I/O on line basis (512 2 image) ample application code: -... 512 * t I/O t I/O ~= 1ms igure 5: I/O overhead 3 Problem tatement In the previous section we have shown that the performance of a new function cannot directly be derived from the code fragment belonging to this function. The performance depends on many design and implementation choices in the W layers that are used. igure 6 shows the conclusions based on the previous What if examples. igure 7 shows the factors outside our new function that have impact on the overall performance. All the layers used directly or indirectly by the function have impact, ranging from the hardware itself, up to middleware providing services. But also the neighboring functions that have no direct relation with our new function have impact on our function. inally the environment including the user have impact on the performance. Introduction to ystem Performance Design page: 3

ample application code: can be: fast, but very local slow, but very generic slow, but very robust fast and robust... The emerging properties (behavior, performance) cannot be seen from the code itself! Underlying platform and neighbouring functions determine emerging properties mostly. igure 6: Non unctional Requirements Require ystem View usage context MW MW MW MW O O O unctions ervices performance and behavior of a function depend on realizations of used layers, functions in the same context, and the usage context Middleware Operating systems HW HW HW Hardware igure 7: unction in ystem Context igure8 formulates a problem statement in terms of a challenge: How to understand the performance of a function as a function of underlying layers and surrounding functions expressed in a manageable number of parameters? Where the size and complexity of underlying layers and neighboring functions is large (tens, hundreds or even thousands man-years of software). 4 ummary We have worked through a simple example of a new application level function. The performance of this function cannot be predicted by looking at the code of the function itself. The underlying platform, neighboring applications and user context all have impact on the performance of this new function. The underlying platform, neighboring applications and user context are often large and very complex. We propose to use models to cope with this complexity. Introduction to ystem Performance Design page: 4

MW MW MW MW O O O HW HW HW unctions ervices Middleware Operating systems Hardware Performance = unction (, other, MW, O, HW) MW, O, HW >> 100 Manyear : very complex Challenge: How to understand MW, O, HW with only a few parameters igure 8: Challenge ummary of Introduction to Problem Resulting ystem Characteristics cannot be deduced from local code. Underlying platform, neighboring applications and user context: have a big impact on system characteristics are big and complex Models require decomposition, relations and representations to analyse. igure 9: ummary of Problem Introduction 5 Acknowledgements The diagrams are a joined effort of Roland Mathijssen, Teun Hendriks and Gerrit Muller. Most of the material is based on material from the EXARCH course created by Ton Kostelijk and. References [1]. The system architecture homepage. http://www. gaudisite.nl/index.html, 1999. History Version: 0.5, date: December 5, 2006 changed by: added application question to introduction of image retrieval performance Introduction to ystem Performance Design page: 5

removed slides with terminology, and removed section Ingredients Version: 0.4, date: November 24, 2006 changed by: created article version changed logo Version: 0.3, date: November 17, 2006 changed by: updated What If slides added lide Title ystem Performance Design: prerequisite information items Version: 0.2, date: November 10, 2006 changed by: added slides to connect what if to problem statement Version: 0.1, date: June 12, 2006 changed by: relayout and reordering Version: 0, date: ebruary 8, 2006 changed by: Created, no changelog yet Introduction to ystem Performance Design page: 6