How would you use to predict growth using PDQ library?

Skip to first unread message

hasan ceylan

Apr 4, 2016, 5:04:43 PM4/4/16
to Guerrilla Capacity Planning
I am looking at Little's law to apply growth in capacity. For example, let's say, I know:

1. Arrival Rate (10,000 requests)
2. Service Time (10 ms)
3. Number of servers (4)

Let's say above numbers are my current numbers and it is acceptable. Let's say I increase the number from bullet point 1 to 20,000 (requests), how would I predict the number of servers needed using PDQ library. Is this doable?

Harry van der horst

Apr 5, 2016, 10:30:52 AM4/5/16
the unspoken assumption is that your application is linearly scalable.
in my experience that is never the case.Your network has limits, your database has limits an your application has single resorces that limit the parallelism.
Never promise linear scalability.
Kind regards

You received this message because you are subscribed to the Google Groups "Guerrilla Capacity Planning" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To post to this group, send email to
Visit this group at
For more options, visit

met hartelijke groeten/kind regards
harry van der Horst
M 0031643016999

May 9, 2016, 1:55:44 PM5/9/16
to Guerrilla Capacity Planning
These numbers make no sense. I assume that your time unit for the arrival rate is 1 second. Your utilization is 10000% (U=XS); that is, 100 servers are required to have 100% utilization on each of them. 4 servers cannot handle the specified workload. Let me approach this differently. The maximum arrival rate that 4 servers can handle is 40/sec (max overall service rate is 4 servers *service rate where the service rate is 1/0.010). Therefore, your current numbers are incorrect. Queue lengths would grow infinitely long because the arrival rate exceeds the service rate of the servers and performance would never be acceptable.

If we make a improve your service time three orders of magnitude from 0.010sec to 0.000010sec, we have numbers that can be worked with.

        arrival rate: 10000/sec
        service time: 0.000010sec
        servers: 4


Doubling you arrival rate doubles your load to 5%. The max overall arrival rate that can be handled by 4 servers is 400000 requests/sec. Queueing effects would be negligible.

Let's assume for a moment that the original numbers make sense. Your question implies that your application is horizontally scalable (grossly true of many applications). Your load balancer needs to be able to handle the load imposed on it without introducing too much queueing.

Reply all
Reply to author
0 new messages