We're implementing a .NET DXA based solution for a client, and part of the scope of work will be to conduct load testing to bring the site in line with a performance budget.

Our initial investigations using a simple single JMeter test (50 users ramping up over 5 seconds) is that the website response times go through the floor and CPU maxes out as soon as we put any load on it.  We thought this may just be limited to our implementation, but having testing against a vanilla DXA solution the problem persists.

Instrumentation indicates that the performance bottleneck occurs when resolving links, and that this doesn't seem to change regardless of whether we have object caching enabled.

When we switch on .NET output caching for the PageController we do find that we can alleviate the issue, but once the cache expires it seems to cascade again. 

The final site will be behind Akamai, which combined with page caching will hopefully help, but it would be great if there's a better approach as it feels like we'd just be masking an underlying issue.

Has anybody else experienced this issue, and if so do you have any pointers?  

Thanks in advance,


[![screenshot of graph][1]][1]

  [1]: http://i.stack.imgur.com/Lx7nX.png