Pages

Wednesday, 22 February 2017

What is 90th Percentile in Performance Testing?

19 comments:

  1. Nicely Explained !! Had read some other as well !! http://performance.punebids.com/?p=628

    ReplyDelete
  2. Clear explanation. Thank you.

    ReplyDelete
  3. Clear explanation. Thank you.

    ReplyDelete
  4. Clearly explained... Nice blog

    ReplyDelete
  5. Dude, it's very informative and really well explained. Keep doing the same.

    ReplyDelete
  6. Nice article Gagan :)
    -Pratim

    ReplyDelete
  7. Hi,
    Sometimes 90% value is greater than the Avg. Response time. what will be the reason and how to explain to the client.

    Thanks,
    Pawan

    ReplyDelete
    Replies
    1. Hi Pawan,

      90th Percentile value will always be greater than average response time, because to calculate 90th Percentile you ignore 10% of the samples and consider the 90th% value, although average response time is calculated on 100% of samples. Please read one more time my above blog.

      While explaining 90th percentile to the client tell her "After eliminating the 10% of high response time, the highest value among 90% is called 90th Percentile of the particular transaction".

      You can also use blog's example to clarify your statement.

      Delete
  8. Hi Gagandeep,

    Thanks for nice explanation.
    Can you please give an example for second point under why we need 90th percentile.



    ReplyDelete
  9. Let's consider the response time data set is:
    2,3,3,32,4,3,1,4,1,2

    where a major spike had been seen at 4th interval and then system recovered. If you calculate the average of data set then you will find it is 5.5 which is higher than all the values (except spike interval), but when you calculate the 90th percentile you will get 4.

    In the large data set (during load test), 0 to 8 % of transactions fall under very high response time due to spikes which may be excluded from the test result. Please note that I would recommend to investigate the root cause of very high spikes, because you can not ignore them all time. It also depends on case to case.

    ReplyDelete
  10. Hi Gagan,

    Can you please explain about 90%,95% and 99% calculations in Jmeter aggregate report listener.As currently I have 5 samplers which are being executed 9 times each and i see the below result in jmeter aggregate report.

    Label #SamplesAverage Median 90% Line95% Line99% LineMin Max Error % Throughput
    81 9 612 545 778 808 808 508 808 0.00% 0.78768
    89 9 1175 1074 1175 2577 2577 851 2577 0.00% 0.77915
    91 9 983 887 1141 1346 1346 843 1346 0.00% 0.76136
    95 9 1053 1102 1137 1144 1144 825 1144 0.00% 0.76394
    98 9 675 619 844 889 889 606 889 0.00% 0.77929
    TOTAL 45 900 864 1141 1175 2577 508 2577 0.00% 2.9758


    It would be helpful if you can help me in understanding the same.

    Thanks in advance.

    ReplyDelete
    Replies
    1. Hi,

      Let's try to understand using Transaction Name 81 (Label 81):

      1. Average: 612
      2. 90%: 778
      3. 95%: 808
      4. 99%: 808
      5. Min: 508
      6. Max: 808

      If you had the response time of all the 9 iterations (samples) for 'Label 81' then you can easily understand the logic. But still I will try my best to show you how it was calculated using dummy response time.

      Since we have Min and Max response time. It means 1st and 9th samplers have values 508 and 808 respectively.
      The median is 545, hence it concludes that 5th value is 545.

      1st: 508
      2nd: A
      3rd: B
      4th: C
      5th: 545
      6th: D
      7th: E
      8th: 778
      9th: 808

      Now, calculate 99th percentile:
      99th Percentile = (0.99 * (Number of Values – 1)) + 1
      99th Percentile = (0.99 * (9-1) +1
      99th Percentile = (0.99 * 8) + 1
      99th Percentile = 7.92 + 1
      99th Percentile = 8.92
      99th Percentile = 9 (Round-off)
      99th Percentile = 9th Value is = 808

      Now, calculate 95th percentile:
      95th Percentile = (0.95 * (Number of Values – 1)) + 1
      95th Percentile = (0.95 * (9-1) +1
      95th Percentile = (0.95 * 8) + 1
      95th Percentile = 7.60 + 1
      95th Percentile = 8.60
      95th Percentile = 9 (Round-off)
      95th Percentile = 9th Value is = 808

      Now, calculate 90th percentile:
      90th Percentile = (0.90 * (Number of Values – 1)) + 1
      90th Percentile = (0.90 * (9-1) +1
      90th Percentile = (0.90 * 8) + 1
      90th Percentile = 7.20 + 1
      90th Percentile = 8.20
      90th Percentile = 8 (Round-off)
      90th Percentile = 8th Value (I would assume 8th value could be 778 which you can verify if you have response time of all the samplers)

      Delete
    2. Thank you Gagan, it really helped me.

      Delete
  11. very nicely explained..thank you

    ReplyDelete
  12. can average response time and 90 th percentile value same????

    ReplyDelete