Performance Concepts Mark A. Magumba. Introduction Research done on 1058 correspondents in 2006 found that 75% OF them would not return to a website that.

Slides:



Advertisements
Similar presentations
Introduction to DBA.
Advertisements

Dinker Batra CLUSTERING Categories of Clusters. Dinker Batra Introduction A computer cluster is a group of linked computers, working together closely.
Lesson 1-Introducing Basic Network Concepts
CMSC 421: Principles of Operating Systems Section 0202 Instructor: Dipanjan Chakraborty Office: ITE 374
23/04/2008VLVnT08, Toulon, FR, April 2008, M. Stavrianakou, NESTOR-NOA 1 First thoughts for KM3Net on-shore data storage and distribution Facilities VLV.
Prototyping. Horizontal Prototyping Description of Horizontal Prototyping A Horizontal, or User Interface, Prototype is a model of the outer shell of.
Chapter 15 Chapter 15: Network Monitoring and Tuning.
MCDST : Supporting Users and Troubleshooting a Microsoft Windows XP Operating System Chapter 10: Collect and Analyze Performance Data.
Figure 1.1 Interaction between applications and the operating system.
MCITP Guide to Microsoft Windows Server 2008 Server Administration (Exam #70-646) Chapter 14 Server and Network Monitoring.
©Silberschatz, Korth and Sudarshan18.1Database System Concepts Centralized Systems Run on a single computer system and do not interact with other computer.
Capacity planning for web sites. Promoting a web site Thoughts on increasing web site traffic but… Two possible scenarios…
Introduction to client/server architecture
11 SERVER CLUSTERING Chapter 6. Chapter 6: SERVER CLUSTERING2 OVERVIEW  List the types of server clusters.  Determine which type of cluster to use for.
Hands-On Microsoft Windows Server 2008 Chapter 11 Server and Network Monitoring.
CH 13 Server and Network Monitoring. Hands-On Microsoft Windows Server Objectives Understand the importance of server monitoring Monitor server.
Windows Server 2008 Chapter 11 Last Update
1 Instant replay  The semester was split into roughly four parts. —The 1st quarter covered instruction set architectures—the connection between software.
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.
Basic Concepts of Computer Networks
Server Load Balancing. Introduction Why is load balancing of servers needed? If there is only one web server responding to all the incoming HTTP requests.
PMIT-6102 Advanced Database Systems
Hands-On Microsoft Windows Server 2008
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems.
Introduction Optimizing Application Performance with Pinpoint Accuracy What every IT Executive, Administrator & Developer Needs to Know.
CSC271 Database Systems Lecture # 30.
Performance of Web Applications Introduction One of the success-critical quality characteristics of Web applications is system performance. What.
Final Report Workshop in Information Security – Distributed Databases Project Access Control Security vs. Performance By: Yosi Barad, Ainat Chervin and.
 Introduction to Operating System Introduction to Operating System  Types Of An Operating System Types Of An Operating System  Single User Single User.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction What is an Operating System? Mainframe Systems Desktop Systems.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 1 Introduction Read:
Chapter 2: Non functional Attributes.  It infrastructure provides services to applications  Many of these services can be defined as functions such.
Computer Measurement Group, India Optimal Design Principles for better Performance of Next generation Systems Balachandar Gurusamy,
Physical Database Design & Performance. Optimizing for Query Performance For DBs with high retrieval traffic as compared to maintenance traffic, optimizing.
Introduction  Client/Server technology is seen by many as the solution to the difficulty of linking together the various departments of corporation.
Scalable Web Server on Heterogeneous Cluster CHEN Ge.
المحاضرة الاولى Operating Systems. The general objectives of this decision explain the concepts and the importance of operating systems and development.
Types of Operating Systems
Frontiers in Massive Data Analysis Chapter 3.  Difficult to include data from multiple sources  Each organization develops a unique way of representing.
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
G063 - Distributed Databases. Learning Objectives: By the end of this topic you should be able to: explain how databases may be stored in more than one.
What is Sure Stats? Sure Stats is an add-on for SAP that provides Organizations with detailed Statistical Information about how their SAP system is being.
Multiprossesors Systems.. What are Distributed Databases ? “ A Logically interrelated collection of shared data ( and a description of this data) physically.
Server to Server Communication Redis as an enabler Orion Free
11 CLUSTERING AND AVAILABILITY Chapter 11. Chapter 11: CLUSTERING AND AVAILABILITY2 OVERVIEW  Describe the clustering capabilities of Microsoft Windows.
Introduction to Grids By: Fetahi Z. Wuhib [CSD2004-Team19]
Types of Operating Systems 1 Computer Engineering Department Distributed Systems Course Assoc. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2015.
Network design Topic 6 Testing and documentation.
Monitoring and Managing Server Performance. Server Monitoring To become familiar with the server’s performance – typical behavior Prevent problems before.
Full and Para Virtualization
Infrastructure for Data Warehouses. Basics Of Data Access Data Store Machine Memory Buffer Memory Cache Data Store Buffer Bus Structure.
Module 9 Planning and Implementing Monitoring and Maintenance.
COMP381 by M. Hamdi 1 Clusters: Networks of WS/PC.
Threaded Programming Lecture 1: Concepts. 2 Overview Shared memory systems Basic Concepts in Threaded Programming.
Introduction to Performance Testing Performance testing is the process of determining the speed or effectiveness of a computer, network, software program.
1 Chapter Overview Monitoring Access to Shared Folders Creating and Sharing Local and Remote Folders Monitoring Network Users Using Offline Folders and.
Operating System (Reference : OS[Silberschatz] + Norton 6e book slides)
Introduction to Performance Tuning Chia-heng Tu PAS Lab Summer Workshop 2009 June 30,
Software Architecture in Practice
Hands-On Microsoft Windows Server 2008
Introduction to client/server architecture
Software Architecture in Practice
TYPES OFF OPERATING SYSTEM
Cloud computing mechanisms
Methodology – Monitoring and Tuning the Operational System
Subject Name: Operating System Concepts Subject Number:
LO2 – Understand Computer Software
Performance And Scalability In Oracle9i And SQL Server 2000
Database System Architectures
Client/Server Computing and Web Technologies
Presentation transcript:

Performance Concepts Mark A. Magumba

Introduction Research done on 1058 correspondents in 2006 found that 75% OF them would not return to a website that took longer than 4 seconds to load, the same research five years earlier showed people were willing to wait 8 seconds for a page to load People tend to value predictability of a system. For instance if a system slows down only once a week to a user this may seem like the system overall is slow Perceived performance is how well a system appears to perform Perceived performance can be improved by communicating with the user by giving estimates of how long a task will take e.g. visually through a progress bar

Determining Performance During Design When designing a system performance must be considered when the system works well but also when it is in a special state for instance what performance is required – When some component failure has occurred – When the system is in maintenance – When patches are being installed – When batch jobs are being run

Ways of determining performance in the design phase Generally it is difficult to determine the performance of a system at the design phase however some methods can be employed like – Using the experience of vendors – Prototyping – Ensuring system scalability

Managing Bottlenecks The performance of the system as a whole is determined by certain components which may be overloaded known as bottlenecks For instance a system may have very fast networks but very slow hard disks, the fast network speeds are immaterial then as performance will be degraded by the hard disks The hard disks in this case would be a performance bottleneck

Benchmarking Benchmarking measures the comparative performance of test component against an industry standard via a test program. The following table shows some common bench mark tests

Common Bench Mark tests

Performing performance Tests There are three general methods for doing performance tests of whole systems – Load testing: it’s a test to see how well a system operates under a particular load – Stress testing: Is a test to see how well a system operates under extreme load, it is a test to see at where (the bottle necks) and when (the load) a particular system breaks – Endurance testing: Is a measure to see how a system behaves when subjected to the expected load for a sustained period of time

Graph of response time against number of users for typical system

Performance testing methodology Performance testing usually employs a group of servers to act as injectors. These simulate users Another server group known as conductors evaluate the test performance It is important that the test environment matches the production environment as much as possible otherwise results will be unreliable Where the cost of setting up a complete test environment is prohibitive it is possible to use a temporary test environment for instance by renting servers from your vendors

Sources of Performance Metrics Kernel Counters – Most operating systems contain counters that store performance information. Tools are provided to retrieve this information for instance on windows you have the perfmon tool and on UNIX systems that sar tool SNMP counters – SNMP is the standard network management protocol and accumulates information about devices in a Management Information Base. This information can be accessed via a Network Management System. SNMP also provides for tarps which is a special message type sent when a device counter exceeds its normal limit

Sources of Performance Metrics Logging. Stores system event information of infrastructure components sometimes on a dedicated log server. Logging usually generates a lot of information but the level of logging is usually configurable Analyzing logs is fundamentally different from monitoring using tools like SNMP as these are able to react in real time, log files are analysed after some time has elapsed

Performance Patterns Performance patterns – There are several ways to improve performance at the infrastructure level but it is important to note that 80% of performance issues do not originate from the infrastructure but from poorly configured applications Increasing performance in upper layers – Database and application tuning can provide higher performance boosts than infrastructure upgrades

Infrastructure Optimizations Caching – Improves infrastructure performance by keeping frequently accessed instructions and data in memory to improve access times examples include Disk caching Web proxies Operational Data Store – Is a smaller database that is a subset of an organization’s larger database whose purpose is to improve access times to a particular subset of frequently queried data In memory databases

Infrastructure Optimizations Scalability – Implies the ease with which configuration changes can be made to a system in response to changes in number of users. A system whose performance improves proportionally to increase in capacity is said to scale well

Vertical VS Horizontal Scaling Vertical scaling (scaling up) involves adding capacity to a single system component for instance increasing the number of CPUs The problem is that this usually has an upper limit also the cost of adding a single component can quickly become very high Horizontal scaling (scaling out) which involves adding more servers to a system. This usually leads to higher management complexity and may increase latency and affect throughput between nodes Horizontal scaling works best when a system is partitioned in layers In general scaling is best achieved by using more components (horizontally) rather than using very fast components (vertically) and this approach also suffers some performance penalty due to increased overhead

Scaling in partitioned system

Load Balancing To take advantage of scaling usually some load balancing is applied Load balancing is the spreading of the application load across multiple identical servers operating in parallel

Load Balancing

High performance clusters – In this arrangement several standard computers are grouped together via high speed connections to emulate an infinitely powerful super computer Grids – Grids are high performance clusters spread geographically. They rely on the idle processor time of the participating computers. The computers communicate over the internet and in this case the network is a possible bottleneck Security is also an important consideration and in some cases computations must be done twice

Design for use In the case of special purpose performance critical systems some guarantees must be made and these will call for specific design decisions Designing for an interactive system for instance will call for a different set of requirements than for a batch system In some cases special products may be required like custom operating systems and hardware Most vendors will provide architects with standard system implementation plans and in most cases it is advisable that these are followed, it is also a good idea to have vendors verify system plans When possible try to spread system load over time to avoid unnecessary spikes Some systems have offline copies of data available to improve performance of I/O expensive operations