Friday, April 30, 2021

Performance Tests

 Performance Tests:

Frequently we discuss performance testing without considering the specifics. Multiple types of performance tests can be performed on a system at a very high scale.

The most common types of performance tests are as follow

LATENCY TEST

  • It is intended to compute the end to end transaction time.
  • The latency of the system is an observable parameter to the management, which tells how long customers have to wait for a transaction to happen. Hence this is one of the important performance tests.
  • Avg. value computation is not the right choice, latency is mostly computed in terms of P99.99, P99.9, P99, and P95.

THROUGHPUT TEST

  • It defines how many concurrent transactions a system can handle.
  • Latency and throughput tests are mostly interrelated.
  • Max throughput of the system is measured until the system starts degrading.

LOAD TEST

  • It represents a binary question — can the system handle a specific load?
  • It is mostly conducted just before the business events e.g. launch in a new country, viral content, and social media events.

STRESS TEST

  • It is intended to compute the breaking point of the system and how much spare headroom systems have.

ENDURANCE TEST

  • To detect the anomalies in the system if the system runs for an extended duration.
  • Many problems in the system are detected only if the system runs for a longer duration e.g. Slow memory leaks, cache population, and memory fragmentation issues.
  • It is the most suggested test for the fast response system which cannot tolerate the long length of the stop the world event caused by the full GC.

CAPACITY PLANNING TEST

  • To check if the system scales as per the expectations when additional resources are added to the system.

DEGRADATION TESTING

  • To check the behavior of the system when it partially fails. It is also known as the partial failure test.
  • It is usually done to validate the resiliency of the system. Chaos Monkey by Netflix is one such example to build a truly resilient system.

RULES TO SELECT TESTS

Golden rules that provide useful guidance over which performance test you should perform:

  • Identify what you care about and figure out how to measure it.
  • Optimize what matters, not what is easy to optimize.
  • Play the big points first.

NON FUNCTIONAL REQUIREMENTS

Observables that are important to the management and system.

NFR’s are generally provided as follow by the management:

  • Reduce the 95% percentile transaction time by 100ms
  • Improve system so that 5x throughput on existing hardware is possible.
  • Improve average response time by 30%

No comments:

Post a Comment

Top DataStructures Problem from Medium-2

  Array: Find a pair with the given sum in an array Maximum Sum Subarray Problem (Kadane’s Algorithm) Longest Increasing Subsequence Problem...