3.8 KiB
3.8 KiB
Scalability
Definition
- Ability to use more resources, without major change in original setup
Reasons ( Not important )
- Increasing data
- Globalization
- New technologies
Trends
Moore's law
Parallel computing
Distributed and cloud computing
Virtualization
Cluster computing
- Definition: loosely or tightly coupled pool of computers that work together collectively and cooperatively as a single computing resource to solve the same or common task
- Benefits
- Enables scalable parallel computing
- Achieves high availability through stand along operation, and fail over
- Modular growth: easy to upgrade
Measurements of scalability
- Functional scalability: Add new functions, and no degradation in memory usage and performance
- Geographical scalability: Distributive globally, no degradation in performance.
- Administrative scalability: Adding more users, no degradation
- Heterogeneous and generational: Adding features and components from different vendors and manufacturers, no degradation
- Load scalability: Adding more load, no degradation
Strategies for scalability: horizontal and vertical
- Horizontal: Add more nodes to and existing cluster
- Vertical: Add more resource to single node
Performance and Hardware scalability
Relationship (Important)
- Scaling increases performance
- Performance is not directly proportional to resources added
- Diminishing return occurs, then tuning is a better choice
Amdahl's law (Important)
- formula
- Speedup factor:
S = T / (\alpha \times T + (1 - \alpha) \times T / n) = 1 / (\alpha + (1 - \alpha) / n)
\alpha
: fraction of serial computation- 1 - alpha: part that can be parallelized
n
: processors used
- Speedup factor:
- Max speedup of n processors, is only achieved when alpha reaches zero, which means the program is fully parallelized
- TODO: work on page 19, draw graph
- Assumption: use the same amount of workload for both sets
- System efficiency formula:
-
Efficiency = E = Speedup / n = 1 / ( \alpha \times n + 1 - \alpha )
-
- Efficiency is low, when load is large, because most nodes are idling (waiting for serial computation to complete)
- Also called fixed workload efficiency
Gustafson’s Law
- To enhance efficiency, scale the workload to match the capacity
- Also called the Scaled Worload Speedup
- Formula
- Scale the workload to: $$Wnew= \alpha W + (1 - \alpha) \times n \times W$$
n
: processor countW
: workloadWnew
: Scaled workload
- Only parallelizable portion is scaled
- Scaled workload speedup
-
S' = W' / W = a + (1-a) \times n
-
- Scaled efficiency:
-
S' / n = a / n + (1 - a)
-
- TODO: do some calculation
Availaility (Important)
- Formula:
-
SA = MTTF / (MTTF + MTTR)
MTTF
: Mean time to failure, the longer the betterMTTR
: Mean time to repair, the shorter the better
-
Types of scaling
- Strong: How performances changes, by increasing processors for fixed problem
- Weak: How the performance changes by increasing processors for problem per processor
Scalability in cloud computing
- Elasticity: resource can be altered
- Virtualization scaling: adding existing system to cloud
- Performance issues: Performance of virtualized components may be slower than bare metal
- Scale by migrating resources: Regions and Availaility Zones
- Region: physical geographical location, that consists of one or more zones
- Load balancing: AWS Elastic Load balancing, distributes incoming application traffic across multiple targets.
- Auto scaling: AWS EC2 auto scaling
- CDN: AWS CloudFront, use edge caching on edge location to serve content to anywhere closer to the vieweer, in order to achieve lower latency and higher transfer speed
- TODO: work the questions