How many users can access Elasticsearch and Kibana at the same time?

Hi,

I am running a Elasticsearch and Kibana(V8.10) instance on a single windows server which has 8vCPU and 32gb of RAM.

I would like to get a rough idea on how much load can the Elastic and Kibana instance can handle at a time. The usage would be fairly simple multiple users accessing the dashboards which is created on an index with 400k documents roughly 300mb of data.

I understand it completely depends on the queries and the complexities of the query to elastic based on what i've read on the forum. I would just like to have an estimate of how many users can comfortably access the dashboards with very minimal visualization load. Please let me know approximately how many users can i expect 10 or 20 or 30 or more users to access Kibana dashboards simultaneously as per the specs mentioned above??

I've read the Rally documents and its seems pretty difficult for me personally understand and setup. I would greatly appreciate your help.

I can't speak to the Elasticsearch side - but from a Kibana perspective, this is difficult to answer because (as you point out) things can vary wildly depending on the exact dashboards that are accessed, number of visualizations the dashboards have, breadth of filters, whether you are using reporting or alerting features, etc. And if you are running Elasticsearch on the same machine, that adds another set of variables based on how much CPU/RAM is available for Kibana to use. So the real answer to the question is it depends.

Given those caveats, I'd say most of the "average" Kibana deployments I see which are primarily using dashboards & visualization features without running a lot of background tasks like alerts/reports can handle around ~50 concurrent requests given a 2vCPU / 2GB RAM instance, though this can fluctuate quite a bit.

Note that these are requests, not users, and a single user loading a dashboard could be triggering several different requests at once. Also remember that Kibana serves static assets like JavaScript bundles & images, there is some variation based on how frequently users are visiting Kibana and whether they already have cached assets in their browser (thus reducing the load on the server). A large volume of users with a cold cache hitting dashboards concurrently will stress the Kibana server much more than users who have already been navigating Kibana for a bit and have cached assets.

Because so many factors can influence resource consumption, we do not formally publish any sizing guidance for Kibana -- it is simply too difficult of a question to answer in a generalized way -- but hopefully this gives you something to start with.

Overall I'd recommend running Kibana on a different machine from Elasticsearch, and going with 1-2CPU/2GB RAM as a starting point, then scaling horizontally as needed. If you are making heavy use of reporting/alerting features (which run tasks in the background on the Kibana server), you may want to allocate more memory to each instance.

A few links that may be useful if you haven't seen them yet:

2 Likes

Thank you very much for the detailed explanation Luke.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.