Microsoft-graph-docs: Hard Numbers For Throttling

Created on 16 Jan 2019  Â·  6Comments  Â·  Source: microsoftgraph/microsoft-graph-docs

We need to know the hard numbers around when we can expect throttling to occur so that we can perform load/performance tests while avoiding unexpected errors related to throttling. The only hard numbers I've been able to find on the web were from a blog that is more than a year old. I would appreciate some specific, detailed documentation that outlines how we can expect the api to respond under varying degrees of load. Thanks!


Document Details

⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

Most helpful comment

If that's the case then I would find it disconcerting.

Does this mean that without making any requests we could be throttled on the first request?

Does this mean if a client is paying for an environment they could be throttled on all requests because another client on that instance is taking up all the resources? I assume when our clients pay for cloud instances they have some service guarantees?

All 6 comments

Yep - I've run apache bench at -c100 -n 20000 and still haven't hit the read throttling limit - what is it?

what if these numbers aren't hard but depend on the total load of the environment? So different depending on other usage, time of day etc.

If that's the case then I would find it disconcerting.

Does this mean that without making any requests we could be throttled on the first request?

Does this mean if a client is paying for an environment they could be throttled on all requests because another client on that instance is taking up all the resources? I assume when our clients pay for cloud instances they have some service guarantees?

You can't reliably calculate limits like that because it all depends on what you're doing. Reads vs. writes, which endpoint, how expensive the query is. There's no real magic number to measure against. Microsoft hasn't published it, nor would I expect them to.

For MS Graph, the nature of it being a proxy to other endpoints means that those services manage their own limits so the matrix is just crazy complex.

Does this mean if a client is paying for an environment they could be throttled on all requests because another client on that instance is taking up all the resources?

It depends... depends on what endpoint you're hitting, if one client (ie: appid) is hitting one tenant or multiple tenants, etc... depends on a lot of factors.

Does this mean that without making any requests we could be throttled on the first request?

Generally speaking, no... that won't happen. Technically it could happen if one user is initiating a lot of requests from a specific client (appid) to an endpoint and is being throttled, but you then use the same appid for the first time. As far as the service is concerned, it doesn't care what user is requesting it because it's correlating them by the app ID and tenant.

That's not exact, because there are a lot of "it depends" branches in the decision tree, but you get the point.

Thanks for a good answer @andrewconnell. I fully understand there are probably a lot of working parts under the hood.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

bijithbalan picture bijithbalan  Â·  4Comments

dcnoren picture dcnoren  Â·  4Comments

findyoucef picture findyoucef  Â·  4Comments

nilleb picture nilleb  Â·  4Comments

cconrado picture cconrado  Â·  4Comments