We're having issues during load testing of our website, and all the pages invloved are using Find to list the parent page's children. We load tested with 350 concurrent users, and the site seriously slowed to an unacceptable level, and combined with "all pages using find throwing errors", we are wondering what sort of load Find can handle?
Feels a bit silly for asking, as the main reason we are using EPi Find is because it's suppose to be able to handle the load better than listing children from the database instead, but it is the common demoninator in all the errors. What is everyone else's milage been like regarding EPi Find and load testing?
Depending on the type of index you have, you will have a different number of QPS (queries per second). Have a look here to understand what these values are: https://www.episerver.com/actions/order-episerver-find/
Once this limit is hit, and exception is thrown and returned to the calling query.
If you need to increase your number of QPS, please contact your Episerver account manager.
Noel, are you using the built in cache'ng in Find or your own implementation?
If you do not then you will first do a lot of http load to and from the Find server and that is a quite expensive thing to do depending on how your elastic (That is what Find is using) query and response looks like.
You also will encounter the limit of QPS that Marcus is talking about and that will make Find to pretty much stop answering you.
Regarding listning from the database with GetChildren vs Episerver Find there is not an absolut true that Find should be faster, it all depends on how you use it.
For example if you are using ContentResult and not projecting the result into a specific small resultobject then the first thing episever will do when getting back the result is to get the content from the database and you will have both Episerver Find traffic AND database traffic (even though it will use cache if the pages already has been collected, but that is true also for GetChildren).I would say that for simple GetChildren actions then pure database actions (GetChildren) is usually faster but for actions like GetDescendent or FindPagesWithCrieria then Find is usually faster BUT please use projections and not GetContentResult if you not absolutly need the whole Content-object.