Little’s Law:  John Dutton Conant Little, is an Institute Professor at the Massachusetts Institute of Technology, best known for his result in Operations Research, Little’s Law. Little’s law is truly amazing in its simplicity and can be used to describe the most complex of systems including resources within those systems.

Let’s take for example the system described above. The notations used include:

  • N – Number of users present within the system
  • C – Number of completions
  • X – Throughput or Rate of Departure
  • A – Number of Arrivals
  • λ – Rate of Arrival
  • Rt – Time spent by Customers within the system

Little’s Law basically states that the long-term average number of customers in a stable system N is equal to the long-term average effective arrival rate, λ, multiplied by the average time a customer spends in the system, W or Rt, or expressed algebraically:

  • N = λ * Rt  ………………..  [ N = Number of Users in the System, Rt = Response Time, λ = Arrival Rate ]

Little’s Law can also be stated as:

  • N = Rt * X  ………………..  [ N = Number of Users in the System, Rt = Response Time, X = Throughput ]

For a system where Zt (Think Time is Non Zero) Little’s Law can be stated as:

  • N =  [Rt + Zt] * X  ………………..  [ N = Number of Users in the System, Rt = Response Time, Zt = Think Time, X = Throughput ]

Applying Little’s Law:  Now that we’ve just defined Little’s Law let’s take a look at where we could apply Little’s Law and benefit from a better understanding of our systems including user behavior on our existing systems.

Little’s Law can be applied to the following scenarios:

  • Model Performance Testing Workload
  • Validate Performance Testing Results
  • Validate the Sizing Models that your Infrastructure guys have come up with
  • Validate the Non Functional Requirements that your Architects have recommended

Let’s take a look at a few examples and apply Little’s Law to a real world system:

Example – Determine Concurrent Users Using Little’s Law: A system at peak processes 8000 Transactions/Hour with an average response time of ~5s per transaction. The average Think Time per user is ~30s. What is the number of concurrent users on the system?

  • Throughput or X = 8000/3600 = 2.22 TPS
  • We know: N =  [Rt + Zt] * X  ………..  [ N = Number of Users in the System, Rt = Response Time, Zt = Think Time, X = Throughput ]
  • Applying the equation: N = [ Rt + Z ] * X = [ 5 + 30 ] * 2.22 = 77.7
  • The above system has approximately 77 users at peak driving 8000 Transactions/Hour.

Example – Validate System Performance Testing Results: The outcome of a performance test is as follows:

  • Peak User Concurrency = 1000
  • Average Transactional Response Time = 5s
  • Average User Think Time = 40s
  • Peak Transactional Throughput ( as recorded by the tool) = 500 TPS

We know: N =  [Rt + Zt] * X  ………..  [ N = Number of Users in the System, Rt = Response Time, Zt = Think Time, X = Throughput ]

  • Applying the equation:  X = N / [ Rt + Z ] = 1000 / [ 5 + 40 ] = 22.22 TPS

You know from the above results, something is really wrong. Little’s Law suggests that the actual TPS for the above system should be ~22 TPS but the Performance Testing results show transactional throughput as 500 TPS. Could this be errors in the Performance Testing results due to poorly written scripts? If your scripts are not smart enough to catch all the relevant errors, the Performance Testing tool will include the errors as part of the true transactional throughput.

The above two examples are meant to give you some familiarity with Little’s Law and help you apply Little’s Law to model Performance Testing workload including validating your Performance Testing results.

Modeling Systems & Forecasting Performance : To teach yourself the concepts of Performance Modeling & to experience how easy  Forecasting System Performance could be, please visit VisualizeIT.

  • Kajari Ghosh Dastidar

    This is a really good article explaining Little’s Law. I knew the Law theoretically. Now I know its practical applications. Thanks!

    • tw37

      Glad you liked the content Kajari. Are there any areas of improvement?

      Cheers,
      Trevor

      • Kajari Ghosh Dastidar

        I have just started learning about Performance Engineering, so may be my comments may be immature. I read elsewhere that Utilization Law is a special case of Little’s Law, and Response Time Law can be derived from Little’s Law. May be you can have a paragraph about these.

        • tw37

          Kajari,

          From my limited knowledge of little’s law is derived from operational theory. Utilization Laws are a different kettle of fish. While operational theory and little’s law focuses on the concurrency and throughput of a system Utilization laws use the throughput to identify overall resource utilization.

          Hope that helps.

          Cheers,
          Trevor

          • tw37

            Thanks for bringing this to my notice

            http://homes.cs.washington.edu/~lazowska/qsp/Images/Chap_03.pdf

            Prof. Lazowska definitely knows his stuff, is far more knowledgeable than me and he’s probably right.

            From a SPE standpoint these are all fundamentals laws generally used for back of the envelope calculations.

            Happy for you to read on, get a good understanding of what Lazowska has to say and translate that into content for our readers here at PPA…:).

            Write to me and let me know if you are interested to help out.

            Cheers,
            Trevor

  • Samay

    Thanks a lot Kajari for providing insight on this simple yet poweful formula.
    You rock Sir.. 🙂

    • tw37

      Thanks Samay. Glad you like the article. There’s a lot more content at Practical Performance Analyst covering the basics of Performance Engineering. Take a look and feel free to ask questions using this chat interface.

      Cheers,
      Trevor

  • Prakhar Sharma

    Awesome … Thanks ..

    • tw37

      How were you planning on using Little’s Law?

      Cheers,
      Trevor

  • Manoj Pathak

    Thanks for explanation. I would like to know how can we add pacing time in this formula?

    • tw37

      Pacing time if i am not mistaken is the time between two consecutive user sessions as configured within a performance testing tools. Little’s Law doesn’t cater to pacing time specifically since pacing time is a testing tool variable.

      However, Pacing time should be derived so as to satisfy the overall throughput, concurrency and Think Time assumptions as modelled in the equation for Little’s Law. Simply speaking, the model assumptions and output should drive your performance testing tool scenario design.

      Hope that answers your question. Best wishes.

      Cheers,
      Trevor

  • srinivas kadiyala

    Thanks, for real time explanation. Im looking forward to read
    more on http://web.mit.edu/sgraves/www/papers/Little's%20Law-Published.pdf

    • tw37

      Hi Srini,

      Glad you enjoyed the content. Let me know any new concepts you might have picked up at the above link. It would be great if we could feed it back into this page.

      Cheers,
      Trevor

  • Himanshu

    Great .. But have a question here .. There are multiple scenario where we need to consider the pacing as well to achieve the throughput. No doubt think time also plays an important role. But we cannot just ignore the pacing. So how we can implement the pacing in the little’s law ?

    • Pacing time is a more of a load runner or a performance testing tool specific concept. Little’s Law in comparison talks about the concurrency model for any given system. Little’s law is a modelling technique that allows you to understand the concurrency of any system while Pacing is mathematical quantity required to design a testing scenario. You can see details at – http://easyloadrunner.blogspot.com.au/2013/06/pacing-calculation_6.html

  • sukhdev singh

    good 🙂

Thank You For Visiting & See You Soon

Practical Performance Analyst - NewsLetter

Signup and Stay In Touch

Signup to the Mailing List here at Practical Performance Analyst and Stay In Touch. We promise not to SPAM you.