SlideShare a Scribd company logo
IT Infrastructure Architecture
Performance Concepts
(chapter 5)
Infrastructure Building Blocks
and Concepts
Introduction
• Performance is a
typical hygiene factor
• Nobody notices a
highly performing
system
• But when a system is
not performing well
enough, users quickly
start complaining
Perceived performance
• Perceived performance refers to how quickly a
system appears to perform its task
• In general, people tend to overestimate their
own patience
• People tend to value predictability in
performance
– When the performance of a system is fluctuating,
users remember a bad experience
– Even if the fluctuation is relatively rare
Perceived performance
• Inform the user about how long a task will
take
– Progress bars
– Splash screens
Performance during
infrastructure design
Performance during infrastructure
design
• A solution must be designed, implemented,
and supported to meet the performance
requirements
– Even under increasing load
• Calculating performance of a system in the
design phase is:
– Extremely difficult
– Very unreliable
Performance during infrastructure
design
• Performance must be considered:
– When the system works as expected
– When the system is in a special state, like:
• Failing parts
• Maintenance state
• Performing backup
• Running batch jobs
• Some ways to do this are:
– Benchmarking
– Using vendor experience
– Prototyping
– User Profiling
Benchmarking
• A benchmark uses a specific test program to
assess the relative performance of an
infrastructure component
• Benchmarks compare:
– Performance of various subsystems
– Across different system architectures
Benchmarking
• Benchmarks comparing the raw speed of parts
of an infrastructure
– Like the speed difference between processors or
between disk drives
– Not taking into account the typical usage of such
components
– Examples:
• Floating Point Operations Per Second – FLOPS
• Million Instructions Per Second – MIPS
Vendor experience
• The best way to determine the performance of a
system in the design phase: use the experience of
vendors
• They have a lot of experience running their
products in various infrastructure configurations
• Vendors can provide:
– Tools
– Figures
– Best practices
Prototyping
• Also known as proof of concept (PoC)
• Prototypes measure the performance of a system
at an early stage
• Building prototypes:
– Hiring equipment from suppliers
– Using datacenter capacity at a vendor’s premise
– Using cloud computing resources
• Focus on those parts of the system that pose the
highest risk, as early as possible in the design
process
User profiling
• Predict the load a new software system will pose on
the infrastructure before the software is actually built
• Get a good indication of the expected usage of the
system
• Steps:
– Define a number of typical user groups (personas)
– Create a list of tasks personas will perform on the new
system
– Decompose tasks to infrastructure actions
– Estimate the load per infrastructure action
– Calculate the total load
User profiling personas/tasks
Persona Number
of users
per
persona
System task Infrastructure load
as a result of the
system task
Frequency
Data
entry
officer
100 Start
application
Read 100 MB data
from SAN
Once a day
Data
entry
officer
100 Start
application
Transport 100 MB
data to workstation
Once a day
Data
entry
officer
100 Enter new
data
Transport 50 KB data
from workstation to
server
40 per
hour
Data
entry
officer
100 Enter new
data
Store 50 KB data to
SAN
40 per
hour
Data
entry
officer
100 Change
existing data
Read 50 KB data
from SAN
10 per
hour
User profiling Infrastructure load
Infrastructure load Per day
Per
second
Data transport from server to workstation (KB) 10,400,000 361.1
Data transport from workstation to server (KB) 2,050,000 71.2
Data read from SAN (KB) 10,400,000 361.1
Data written to SAN (KB) 2,050,000 71.2
Performance of a running
system
Managing bottlenecks
• The performance of a system is based on:
– The performance of all its components
– The interoperability of various components
• A component causing the system to reach some
limit is referred to as the bottleneck of the system
• Every system has at least one bottleneck that
limits its performance
• If the bottleneck does not negatively influence
performance of the complete system under the
highest expected load, it is OK
Performance testing
• Load testing - shows how a system performs
under the expected load
• Stress testing - shows how a system reacts
when it is under extreme load
• Endurance testing - shows how a system
behaves when it is used at the expected load
for a long period of time
Performance testing - Breakpoint
• Ramp up the load
– Start with a small number of virtual users
– Increase the number over a period of time
• The test result shows how the performance varies with the
load, given as number of users versus response time.
Performance testing
• Performance testing software typically uses:
– One or more servers to act as injectors
• Each emulating a number of users
• Each running a sequence of interactions
– A test conductor
• Coordinating tasks
• Gathering metrics from each of the injectors
• Collecting performance data for reporting purposes
Performance testing
• Performance testing should be done in a
production-like environment
– Performance tests in a development environment
usually lead to results that are highly unreliable
– Even when underpowered test systems perform
well enough to get good test results, the faster
production system could show performance issues
that did not occur in the tests
• To reduce cost:
– Use a temporary (hired) test environment
Performance patterns
Increasing performance on upper
layers
• 80% of the performance issues are due to badly
behaving applications
• Application performance can benefit from:
– Database and application tuning
– Prioritizing tasks
– Working from memory as much as possible (as
opposed to working with data on disk)
– Making good use of queues and schedulers
• Typically more effective than adding compute
power
Disk caching
• Disks are mechanical devices that are slow by nature
• Caching can be implemented i:
– Disks
– Disk controllers
– Operating system
• All non-used memory in operating systems is used for disk cache
• Over time, all memory gets filled with previously stored disk
requests and prefetched disk blocks, speeding up applications.
• Cache memory:
– Stores all data recently read from disk
– Stores some of the disk blocks following the recently read
disk blocks
Caching
Component
Time it takes to fetch 1 MB of
data (ms)
Network, 1 Gbit/s 675
Hard disk, 15k rpm, 4 KB disk blocks 105
Main memory DDR3 RAM 0.2
CPU L1 cache 0.016
Web proxies
• When users browse the internet, data can be
cached in a web proxy server
– A web proxy server is a type of cache
– Earlier accessed data can be fetched from cache,
instead of from the internet
• Benefits:
– Users get their data faster
– All other users are provided more bandwidth to
the internet, as the data does not have to be
downloaded again
Operational data store
• An Operational Data Store (ODS) is a read-only
replica of a part of a database, for a specific
use
• Frequently used information is retrieved from
a small ODS database
– The main database is used less for retrieving
information
– The performance of the main database is not
degraded
Front-end servers
• Front-end servers serve data to end users
– Typically web servers
• To increase performance, store static data on
the front-end servers
– Pictures are a good candidate
– Significantly lowers the amount of traffic to back-
end systems
• In addition, a reverse proxy can be used
– Automatically cache most requested data
In-memory databases
• In special circumstances, entire databases can be
run from memory instead of from disk
• In-memory databases are used in situations
where performance is crucial
– Real-time SCADA systems
– High performance online transaction processing
(OLTP) systems
• As an example, in 2011 SAP AG introduced HANA, an in-
memory database for SAP systems
• Special arrangements must be made to ensure
data is not lost when a power failure occurs
Scalability
• Scalability indicates the ease in with which a system
can be modified, or components can be added, to
handle increasing load
• Two ways to scale a system:
– Vertical scaling (scale up) - adding resources to a single
component
– Horizontal scaling (scale out) - adding more components to
the infrastructure
Scalability – Vertical scaling
• Adding more resources, for example:
– Server: more memory, CPU’s
– Network switch: adding more ports
– Storage: Replace small disks by larger disks
• Vertical scaling is easy to do
• It quickly reaches a limit
– The infrastructure component is “full”
Scalability – Horizontal scaling
• Adding more components to the infrastructure, for
example:
– Adding servers to a web server farm
– Adding disk cabinets to a storage system
• In theory, horizontal scaling scales much better
– Be aware of bottlenecks
• Doubling the number of components does not
necessarily double the performance
• Horizontal scaling is the basis for cloud computing
• Applications must be aware of scaling infrastructure
components
Scalability – Horizontal scaling
Load balancing
• Load balancing uses multiple servers that
perform identical tasks
– Examples:
• Web server farm
• Mail server farm
• FTP (File Transfer Protocol) server farm
• A load balancer spreads the load over the
available machines
– Checks the current load on each server in the farm
– Sends incoming requests to the least busy server
•
Load balancing
Load balancing
• Advanced load balancers can spread the load based on:
– The number of connections a server has
– The measured response time of a server
• The application running on a load balanced system
must be able to cope with the fact that each request
can be handled by a different server
– The load balancer should contain the states of the
application
– The load balancing mechanism can arrange that a user’s
session is always connected to the same server
– If a server in the server farm goes down, its session
information becomes inaccessible and sessions are lost
Load balancing
• A load balancer increases availability
– When a server in the server farm is unavailable,
the load balancer notices this and ensures no
requests are sent to the unavailable server until it
is back online again
• The availability of the load balancer itself is
very important
– Load balancers are typically setup in a failover
configuration
Load balancing
• Network load balancing:
– Spread network load over multiple network
connections
– Most network switches support port trunking
• Multiple Ethernet connections are combined to get a virtual
Ethernet connection providing higher throughput
• The load is balanced over the connections by the network
switch
• Storage load balancing:
– Using multiple disks to spread the load of reads and
writes
– Use multiple connections between servers and
storage systems
High performance clusters
• High performance clusters provide a vast amount of
computing power by combining many computer
systems
• A large number of cheap off the-shelf servers can
create one large supercomputer
• Used for calculation-intensive systems
– Weather forecasts
– Geological research
– Nuclear research
– Pharmaceutical research
• TOP500.org
Grid Computing
• A computer grid is a high performance cluster that
consists of systems that are spread geographically
• The limited bandwidth is the bottleneck
• Examples:
– SETI@HOME
– CERN LHC Computing Grid (140 computing centers in 35
countries)
• Broker firms exist for commercial exploitation of grids
• Security is a concern when computers in the grid are
not under control
Design for use
• Performance critical applications should be
designed as such
• Tips:
– Know what the system will be used for
• A large data warehouse needs a different infrastructure
design than an online transaction processing system or a
web application
• Interactive systems are different than batch oriented
systems
– When possible, try to spread the load of the system
over the available time
Design for use
– In some cases, special products must be used for
certain systems
• Real-time operating systems
• In-memory databases
• Specially designed file systems
– Use standard implementation plans that are proven in
practice
• Follow the vendor's recommended implementation
• Have the vendors check the design you created
– Move rarely used data from the main systems to other
systems
• Moving old data to a large historical database can speed up a
smaller sized database
Capacity management
• Capacity management guarantees high
performance of a system in the long term
• To ensure performance stays within
acceptable limits, performance must be
monitored
• Trend analyses can be used to predict
performance degradation
• Anticipate on business changes (like
forthcoming marketing campaigns)

More Related Content

PPTX
07. datacenters
PPTX
01. 03.-introduction-to-infrastructure
PPTX
04. availability-concepts
PPTX
05. performance-concepts-26-slides
PPTX
06. security concept
PPTX
09. storage-part-1
PPTX
08. networking-part-2
PPTX
Random Forest Algorithm - Random Forest Explained | Random Forest In Machine ...
07. datacenters
01. 03.-introduction-to-infrastructure
04. availability-concepts
05. performance-concepts-26-slides
06. security concept
09. storage-part-1
08. networking-part-2
Random Forest Algorithm - Random Forest Explained | Random Forest In Machine ...

What's hot (20)

PPTX
11. operating-systems-part-1
PPTX
11. operating-systems-part-2
PPTX
03. non-functional-attributes-introduction-4-slides
PPTX
12. End user devices.pptx
PPTX
01. 02. introduction (13 slides)
PPTX
10. compute-part-1
PPTX
08. networking
PPTX
10. compute-part-2
PPTX
Operating System and Building Blocks
PPT
Synchronization in distributed systems
PPT
File models and file accessing models
PPT
Types of Load distributing algorithm in Distributed System
PPT
Communication primitives
PPTX
Inter Process Communication
PPTX
Implementation levels of virtualization
PDF
Distributed Operating System_1
PPT
distributed shared memory
PPTX
Fault tolerance in distributed systems
PPT
Thrashing allocation frames.43
11. operating-systems-part-1
11. operating-systems-part-2
03. non-functional-attributes-introduction-4-slides
12. End user devices.pptx
01. 02. introduction (13 slides)
10. compute-part-1
08. networking
10. compute-part-2
Operating System and Building Blocks
Synchronization in distributed systems
File models and file accessing models
Types of Load distributing algorithm in Distributed System
Communication primitives
Inter Process Communication
Implementation levels of virtualization
Distributed Operating System_1
distributed shared memory
Fault tolerance in distributed systems
Thrashing allocation frames.43
Ad

Viewers also liked (9)

PPT
Chapter13
PPTX
Chapter04
PPT
Chapter02
PPT
Chapter14
PPT
Chapter01
PPT
Chapter05
PPT
Chapter06
PPT
Chapter03
PPT
Artificial Intelligence
Chapter13
Chapter04
Chapter02
Chapter14
Chapter01
Chapter05
Chapter06
Chapter03
Artificial Intelligence
Ad

Similar to 05. performance-concepts (20)

PPT
Performance Testing Overview
PPTX
Performance Assurance for Packaged Applications
PDF
(ATS6-PLAT06) Maximizing AEP Performance
PPTX
Webinar: Best Practices for Upgrading to MongoDB 3.2
PPTX
Linux basics
PPTX
Performance Tuning
PDF
071410 sun a_1515_feldman_stephen
PPTX
CC_Unit4_2024_Class3.pptx Cloud Computing Unit V
PDF
(ATS4-PLAT08) Server Pool Management
PPTX
Exchange Server 2013 : les mécanismes de haute disponibilité et la redondance...
PDF
Breaking data
PDF
performancetestinganoverview-110206071921-phpapp02.pdf
PPTX
Big Data for QAs
PPTX
Data at Scale - Michael Peacock, Cloud Connect 2012
PDF
Salesforce Performance hacks - Client Side
PDF
Adding Value in the Cloud with Performance Test
PPT
10-MultiprocessorScheduling chapter8.ppt
PDF
Performance Of IT Infrastructure Author Liam Smith
PDF
Architecting for the cloud scability-availability
PPTX
Performance Testing
Performance Testing Overview
Performance Assurance for Packaged Applications
(ATS6-PLAT06) Maximizing AEP Performance
Webinar: Best Practices for Upgrading to MongoDB 3.2
Linux basics
Performance Tuning
071410 sun a_1515_feldman_stephen
CC_Unit4_2024_Class3.pptx Cloud Computing Unit V
(ATS4-PLAT08) Server Pool Management
Exchange Server 2013 : les mécanismes de haute disponibilité et la redondance...
Breaking data
performancetestinganoverview-110206071921-phpapp02.pdf
Big Data for QAs
Data at Scale - Michael Peacock, Cloud Connect 2012
Salesforce Performance hacks - Client Side
Adding Value in the Cloud with Performance Test
10-MultiprocessorScheduling chapter8.ppt
Performance Of IT Infrastructure Author Liam Smith
Architecting for the cloud scability-availability
Performance Testing

More from Muhammad Ahad (7)

PPT
Chapter12
PPT
Chapter11
PPT
Chapter10
PPT
Chapter09
PPT
Chapter08
PPT
Chapter07
PPT
Artificial Intelligence
Chapter12
Chapter11
Chapter10
Chapter09
Chapter08
Chapter07
Artificial Intelligence

Recently uploaded (20)

PDF
GamePlan Trading System Review: Professional Trader's Honest Take
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Big Data Technologies - Introduction.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
NewMind AI Monthly Chronicles - July 2025
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
cuic standard and advanced reporting.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Chapter 3 Spatial Domain Image Processing.pdf
GamePlan Trading System Review: Professional Trader's Honest Take
Network Security Unit 5.pdf for BCA BBA.
solutions_manual_-_materials___processing_in_manufacturing__demargo_.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Big Data Technologies - Introduction.pptx
Spectral efficient network and resource selection model in 5G networks
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
Mobile App Security Testing_ A Comprehensive Guide.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
The Rise and Fall of 3GPP – Time for a Sabbatical?
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Review of recent advances in non-invasive hemoglobin estimation
NewMind AI Monthly Chronicles - July 2025
“AI and Expert System Decision Support & Business Intelligence Systems”
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
cuic standard and advanced reporting.pdf
Electronic commerce courselecture one. Pdf
Unlocking AI with Model Context Protocol (MCP)
Chapter 3 Spatial Domain Image Processing.pdf

05. performance-concepts

  • 1. IT Infrastructure Architecture Performance Concepts (chapter 5) Infrastructure Building Blocks and Concepts
  • 2. Introduction • Performance is a typical hygiene factor • Nobody notices a highly performing system • But when a system is not performing well enough, users quickly start complaining
  • 3. Perceived performance • Perceived performance refers to how quickly a system appears to perform its task • In general, people tend to overestimate their own patience • People tend to value predictability in performance – When the performance of a system is fluctuating, users remember a bad experience – Even if the fluctuation is relatively rare
  • 4. Perceived performance • Inform the user about how long a task will take – Progress bars – Splash screens
  • 6. Performance during infrastructure design • A solution must be designed, implemented, and supported to meet the performance requirements – Even under increasing load • Calculating performance of a system in the design phase is: – Extremely difficult – Very unreliable
  • 7. Performance during infrastructure design • Performance must be considered: – When the system works as expected – When the system is in a special state, like: • Failing parts • Maintenance state • Performing backup • Running batch jobs • Some ways to do this are: – Benchmarking – Using vendor experience – Prototyping – User Profiling
  • 8. Benchmarking • A benchmark uses a specific test program to assess the relative performance of an infrastructure component • Benchmarks compare: – Performance of various subsystems – Across different system architectures
  • 9. Benchmarking • Benchmarks comparing the raw speed of parts of an infrastructure – Like the speed difference between processors or between disk drives – Not taking into account the typical usage of such components – Examples: • Floating Point Operations Per Second – FLOPS • Million Instructions Per Second – MIPS
  • 10. Vendor experience • The best way to determine the performance of a system in the design phase: use the experience of vendors • They have a lot of experience running their products in various infrastructure configurations • Vendors can provide: – Tools – Figures – Best practices
  • 11. Prototyping • Also known as proof of concept (PoC) • Prototypes measure the performance of a system at an early stage • Building prototypes: – Hiring equipment from suppliers – Using datacenter capacity at a vendor’s premise – Using cloud computing resources • Focus on those parts of the system that pose the highest risk, as early as possible in the design process
  • 12. User profiling • Predict the load a new software system will pose on the infrastructure before the software is actually built • Get a good indication of the expected usage of the system • Steps: – Define a number of typical user groups (personas) – Create a list of tasks personas will perform on the new system – Decompose tasks to infrastructure actions – Estimate the load per infrastructure action – Calculate the total load
  • 13. User profiling personas/tasks Persona Number of users per persona System task Infrastructure load as a result of the system task Frequency Data entry officer 100 Start application Read 100 MB data from SAN Once a day Data entry officer 100 Start application Transport 100 MB data to workstation Once a day Data entry officer 100 Enter new data Transport 50 KB data from workstation to server 40 per hour Data entry officer 100 Enter new data Store 50 KB data to SAN 40 per hour Data entry officer 100 Change existing data Read 50 KB data from SAN 10 per hour
  • 14. User profiling Infrastructure load Infrastructure load Per day Per second Data transport from server to workstation (KB) 10,400,000 361.1 Data transport from workstation to server (KB) 2,050,000 71.2 Data read from SAN (KB) 10,400,000 361.1 Data written to SAN (KB) 2,050,000 71.2
  • 15. Performance of a running system
  • 16. Managing bottlenecks • The performance of a system is based on: – The performance of all its components – The interoperability of various components • A component causing the system to reach some limit is referred to as the bottleneck of the system • Every system has at least one bottleneck that limits its performance • If the bottleneck does not negatively influence performance of the complete system under the highest expected load, it is OK
  • 17. Performance testing • Load testing - shows how a system performs under the expected load • Stress testing - shows how a system reacts when it is under extreme load • Endurance testing - shows how a system behaves when it is used at the expected load for a long period of time
  • 18. Performance testing - Breakpoint • Ramp up the load – Start with a small number of virtual users – Increase the number over a period of time • The test result shows how the performance varies with the load, given as number of users versus response time.
  • 19. Performance testing • Performance testing software typically uses: – One or more servers to act as injectors • Each emulating a number of users • Each running a sequence of interactions – A test conductor • Coordinating tasks • Gathering metrics from each of the injectors • Collecting performance data for reporting purposes
  • 20. Performance testing • Performance testing should be done in a production-like environment – Performance tests in a development environment usually lead to results that are highly unreliable – Even when underpowered test systems perform well enough to get good test results, the faster production system could show performance issues that did not occur in the tests • To reduce cost: – Use a temporary (hired) test environment
  • 22. Increasing performance on upper layers • 80% of the performance issues are due to badly behaving applications • Application performance can benefit from: – Database and application tuning – Prioritizing tasks – Working from memory as much as possible (as opposed to working with data on disk) – Making good use of queues and schedulers • Typically more effective than adding compute power
  • 23. Disk caching • Disks are mechanical devices that are slow by nature • Caching can be implemented i: – Disks – Disk controllers – Operating system • All non-used memory in operating systems is used for disk cache • Over time, all memory gets filled with previously stored disk requests and prefetched disk blocks, speeding up applications. • Cache memory: – Stores all data recently read from disk – Stores some of the disk blocks following the recently read disk blocks
  • 24. Caching Component Time it takes to fetch 1 MB of data (ms) Network, 1 Gbit/s 675 Hard disk, 15k rpm, 4 KB disk blocks 105 Main memory DDR3 RAM 0.2 CPU L1 cache 0.016
  • 25. Web proxies • When users browse the internet, data can be cached in a web proxy server – A web proxy server is a type of cache – Earlier accessed data can be fetched from cache, instead of from the internet • Benefits: – Users get their data faster – All other users are provided more bandwidth to the internet, as the data does not have to be downloaded again
  • 26. Operational data store • An Operational Data Store (ODS) is a read-only replica of a part of a database, for a specific use • Frequently used information is retrieved from a small ODS database – The main database is used less for retrieving information – The performance of the main database is not degraded
  • 27. Front-end servers • Front-end servers serve data to end users – Typically web servers • To increase performance, store static data on the front-end servers – Pictures are a good candidate – Significantly lowers the amount of traffic to back- end systems • In addition, a reverse proxy can be used – Automatically cache most requested data
  • 28. In-memory databases • In special circumstances, entire databases can be run from memory instead of from disk • In-memory databases are used in situations where performance is crucial – Real-time SCADA systems – High performance online transaction processing (OLTP) systems • As an example, in 2011 SAP AG introduced HANA, an in- memory database for SAP systems • Special arrangements must be made to ensure data is not lost when a power failure occurs
  • 29. Scalability • Scalability indicates the ease in with which a system can be modified, or components can be added, to handle increasing load • Two ways to scale a system: – Vertical scaling (scale up) - adding resources to a single component – Horizontal scaling (scale out) - adding more components to the infrastructure
  • 30. Scalability – Vertical scaling • Adding more resources, for example: – Server: more memory, CPU’s – Network switch: adding more ports – Storage: Replace small disks by larger disks • Vertical scaling is easy to do • It quickly reaches a limit – The infrastructure component is “full”
  • 31. Scalability – Horizontal scaling • Adding more components to the infrastructure, for example: – Adding servers to a web server farm – Adding disk cabinets to a storage system • In theory, horizontal scaling scales much better – Be aware of bottlenecks • Doubling the number of components does not necessarily double the performance • Horizontal scaling is the basis for cloud computing • Applications must be aware of scaling infrastructure components
  • 33. Load balancing • Load balancing uses multiple servers that perform identical tasks – Examples: • Web server farm • Mail server farm • FTP (File Transfer Protocol) server farm • A load balancer spreads the load over the available machines – Checks the current load on each server in the farm – Sends incoming requests to the least busy server •
  • 35. Load balancing • Advanced load balancers can spread the load based on: – The number of connections a server has – The measured response time of a server • The application running on a load balanced system must be able to cope with the fact that each request can be handled by a different server – The load balancer should contain the states of the application – The load balancing mechanism can arrange that a user’s session is always connected to the same server – If a server in the server farm goes down, its session information becomes inaccessible and sessions are lost
  • 36. Load balancing • A load balancer increases availability – When a server in the server farm is unavailable, the load balancer notices this and ensures no requests are sent to the unavailable server until it is back online again • The availability of the load balancer itself is very important – Load balancers are typically setup in a failover configuration
  • 37. Load balancing • Network load balancing: – Spread network load over multiple network connections – Most network switches support port trunking • Multiple Ethernet connections are combined to get a virtual Ethernet connection providing higher throughput • The load is balanced over the connections by the network switch • Storage load balancing: – Using multiple disks to spread the load of reads and writes – Use multiple connections between servers and storage systems
  • 38. High performance clusters • High performance clusters provide a vast amount of computing power by combining many computer systems • A large number of cheap off the-shelf servers can create one large supercomputer • Used for calculation-intensive systems – Weather forecasts – Geological research – Nuclear research – Pharmaceutical research • TOP500.org
  • 39. Grid Computing • A computer grid is a high performance cluster that consists of systems that are spread geographically • The limited bandwidth is the bottleneck • Examples: – SETI@HOME – CERN LHC Computing Grid (140 computing centers in 35 countries) • Broker firms exist for commercial exploitation of grids • Security is a concern when computers in the grid are not under control
  • 40. Design for use • Performance critical applications should be designed as such • Tips: – Know what the system will be used for • A large data warehouse needs a different infrastructure design than an online transaction processing system or a web application • Interactive systems are different than batch oriented systems – When possible, try to spread the load of the system over the available time
  • 41. Design for use – In some cases, special products must be used for certain systems • Real-time operating systems • In-memory databases • Specially designed file systems – Use standard implementation plans that are proven in practice • Follow the vendor's recommended implementation • Have the vendors check the design you created – Move rarely used data from the main systems to other systems • Moving old data to a large historical database can speed up a smaller sized database
  • 42. Capacity management • Capacity management guarantees high performance of a system in the long term • To ensure performance stays within acceptable limits, performance must be monitored • Trend analyses can be used to predict performance degradation • Anticipate on business changes (like forthcoming marketing campaigns)