Chapter 8 - Performance Flashcards
what is performance?
the ability of a system to meet timing requirements
for the performance general scenario, what is the source
internal or external to the system
for the performance general scenario, what is the stimulus
arrival of a periodic, sporadic, or stochastic event
for the performance general scenario, what is the artifact
the system or one or more of its components
for the performance general scenario, what are the 4 possible environments
normal mode
emergency mode
peak load
overload mode
for the performance general scenario, what are the 2 responses
process events
change level of service
for the performance general scenario, what are the 5 possible response measures
latency deadline throughput jitter miss rate
what is the primary goal of performance tactics
to generate a response to an event arriving at the system within some time-based constraint
2 categories of performance tactics
control resource demand
manage resources
6 tactics for controlling resource demand
- manage sampling rate
- limit event response
- prioritize events
- reduce overhead
- bound execution times
- increase resource efficiency
what does it mean to manage sampling rate
to reduce the sampling frequency at which a stream of data is captured if possible typically with some loss of fidelity
what does it mean to limit event response
process events only up to a set maximum rate to ensure more predictable processing
what does it mean to prioritize events
you can rank events in order of how important it is to service them
what does it mean to bound execution times
place a limit on how much execution time is used to respond to an event
what does it mean to increase resource efficiency
improving algorithms used in critical areas to decrease latency
6 tactics for managing resources
increase resources
introduce concurrency
maintain multiple copies of computations
maintain multiple copies of the data
bound queue sizes
schedule resources
what does it mean to maintain multiple copies of computations
have replicas on different servers to reduce resource contention that would occur if all computations took place on a single server
what does it mean to maintain multiple copies of data
to keep copies of data on storage media with different access speeds
what does it mean to bound queue sizes
control the maximum number of queued arrivals and consequently, the resources used to process the arrivals
what does it mean to schedule resources
when there is resource contention, the resource must be scheduled
2 issues with performance in regards to allocation of responsibilities
- determine the system responsibilities that will involve heavy loading, have critical time-response requirements, or impact portions of the system where heavy load or time-critical stuff occurs
- ensure required performance response can be met
5 things to consider for system responsibilities that involve heavy loading or have time-critical response requirements
- identify process requirements of each responsibility to determine if any bottlenecks will occur
- identify responsibilities to recognize and process requests appropriately
- identify threads that cross process or processor boundaries
- identify responsibilities to manage threads
- identify responsibilities for scheduling shared resources
4 things to consider when evaluating a coordination model with respect to performance
- does it support concurrency, event prioritization, or a scheduling strategy
- does it ensure that required performance response can be delivered
- can it capture periodic, stochastic, or sporadic event arrivals
- does it have the appropriate properties of the communication mechanism
4 things to consider for data abstractions of the data model that will be heavily loaded or have time-critical response requirements
- determine whether keeping copies of key data would benefit performance
- determine if partitioning data would benefit performance
- determine whether reducing processing requirements for data abstractions is possible
- determine whether adding resources to reduce bottlenecks is feasible
4 issues with performance in regards to mapping among architectural elements
- determine where heavy network loading will occur and whether or not to co-locate some components
- ensure that components with heavy computational requirements are assigned to processors with the most processing capacity
- determine where introducing concurrency can have a significant positive effect
- determine whether the choice of threads and the responsibilities introduce bottlenecks
2 issues with performance in regards to resource management
- determine whether resources in the system are critical for performance
- for such resources ensure that they will be managed under normal and overloaded system operation
3 issues with performance in regards to binding time
- determine the time necessary to complete any bindings after compile time
- determine the additional overhead introduced by using the late binding mechanism
- ensure that the above values do not impose unacceptable performance penalties on the system
4 issues with performance in regards to choice of technology
- will the choice of technologies let you set and meet hard real-time deadlines
- do you know its characteristics under load and its limits
- does your choice of technology introduce excessive overhead for heavily used ops