# Find a realistic distribution scenario for requests

For a loadtest I have to figure meaningful numbers for the maximum number of requests per hour and minute. The only thing I have is the number of requests per working day (which is a timeframe of 14 hours).

The easiest (but most inaccurate) would be just to take the average but I think it follows a normal distribution. Here is what I have:

There are people generating requests over the day from 06:00 (am) - 20:00 (pm) - afterwards the system is taken offline. They a generating an overall load of 1400 requests each day. So my question is: How could those requests be distributed over the day? I have something like this in mind (this is just an (unrelated) example but it should give an indication what I would image):

I think the red curve comes the closest to my scenario since few people start at 6:00 or work until 20:00. The workload will increase at 9:00 and flat out at 17:00 => So like a normal Gaussian distribution...

How can that scenario be mapped into real data? I am especially interested in the peak number of requests during the day. So what could be a potential maximum number of requests per hour/minute? I know (as indicated by several graphs) that there are several potential distributions. (But the sum should always be 1400 in the end)

I currently use excel to visualize the numbers/diagrams.

Update:

1. Please note that the image is just an example which I highjacked to illustrate what I have in mind
2. I do not have the actual data - only the daily number of 1400. If I had the actual timestamp of each request I wouldn't need to ask this question to figure out a realistic distribution scenario.
3. I can not measure since it is historical data and this is also not an exam question ;-)

=> So the overall question is: What could be a possible distribution scenario to spread the requests over the day? I assumed that they followed a normal distribution and asked how that could look like...

• Your graph is difficult to understand: First, it appears that the red curve may be the density function of a normal distribution centered at 13:30 (not 0) and with standard deviation 1. Second, the horizontal axis does not intersect the vertical axis at 0, so I have no idea how to interpret numbers on the vertical axis. // Throughout the 14hr day you typically have 1400 requests, which is an average of 100 an hour, but the rate seems to be much higher than 100 mid-day and lower at other times. ... – BruceET Aug 14 '18 at 17:31
• ... A possible intepretation is that 68% (about 950) requests typically arrive between 12:30 and 14:30, but without additional information (or assumptions) I see no way to say what the maximum number of requests between 12:00 and 13:00 might be--not to mention the max number between 12:00 and 12:01. // Do you have actual data on what has happened hour-by-hour (or minute-by-minute) during previous days? – BruceET Aug 14 '18 at 17:34
• You probably aren't going to look to fit your data to a normal distribution, you are probably wanting to find the distribution for your data. This would involve you first plotting a histogram (time-of-day vs. number-of-queries) to see if your data really do follow an established distribution. – ERT Aug 14 '18 at 17:40
• Yes. Assuming normality is a cheap and easy trick. If this is reality, measure. If this is an exam question, assume normality. – eSurfsnake Aug 15 '18 at 4:30
• Concerning the 68%: About 68% of the probability in a normal distribution is within one standard deviation on either side of the mean. Computation for standard normal using R: diff(pnorm(c(-1,1))) returns 0.6826895. // Also, that's part of the Empirical Rule discussed in many elementary statistics books. The rest is 95% within two SD of the mean, and 99.7% (or "almost all") within three SD of the mean. The ER applies (almost) exactly to normal populations, and approximately to many samples that have histograms vaguely suggesting data are from a normal population. – BruceET Aug 15 '18 at 8:04

Reading your comments I have learned a little more about your situation and @ERT makes useful suggestions. That prompts me to speculate how you might approach this problem by looking at real data.

Suppose you have data for 200 days and you want to start your investigation by looking at the one busy hour between 13:00 and 14:00. By looking at the historical data you might find that the average number of requests during that hour has been 550.

Poisson model: If you assume that calls arrive randomly at the rate of 550 per hour at that time of day, then you might say that the number $X$ of calls per hour mid-day is distributed $\mathsf{Pois}(\lambda = 550).$ While you can't really find a realistic maximum and minimum that you will ever see during one mid-day hour, it might be useful to get an interval estimate designed to include requests during 90% of such hours.

Interval estimate for requests in a mid-day hour: If the Poisson model is right, you can cut off the bottom and top 5% of probability from $\mathsf{Pois}(550),$ which gives the interval $[512, 589].$ Then you could plan to have staff or bandwidth (or whatever) available between 13:00 and 15:00 each day to accommodate about 590 requests in a timely fashion. (I used the computations below in R statistical software, where qpois is a Poisson inverse CDF (quantile function) and ppois is a Poisson CDF.

qpois(c(.05,.95), 550)
[1] 512 589
diff(ppois(c(511, 589), 550))
[1] 0.9036664


Interval for a mid-day five-minuted period: I'm not sure I would push the Poisson model down the the one-minute level, but the rate of calls during a mid-day five-minute period would be $550/12 \approx 46$ and you could use a similar method to get an interval estimate that would express the number of requests arriving within 90% of typical five-minute mid-day time periods: $[35, 57].$ (Because of the discreteness of the Poisson distribution it is not possible to get an interval that contains exactly 90% of the probability--91% is close.)

qpois(c(.05,.95), 46)
[1] 35 57
diff(ppois(c(34, 57), 46))
[1] 0.9109021


Similar analyses could be done for other times of day when the arrival rate of requests is smaller than at mid-day.

I hope something like this approach will get you almost the kinds of answers you are looking for.

• Thank you, that approach finds some of the answers I was looking for... – Lonzak Aug 16 '18 at 13:26