Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Search] Load test search sessions vs no search sessions #125384

Closed
Dosant opened this issue Feb 11, 2022 · 5 comments
Closed

[Search] Load test search sessions vs no search sessions #125384

Dosant opened this issue Feb 11, 2022 · 5 comments
Labels
Feature:Search Sessions Feature:Search Querying infrastructure in Kibana impact:needs-assessment Product and/or Engineering needs to evaluate the impact of the change. performance Team:DataDiscovery Discover, search (e.g. data plugin and KQL), data views, saved searches. For ES|QL, use Team:ES|QL.

Comments

@Dosant
Copy link
Contributor

Dosant commented Feb 11, 2022

Currently, search sessions in Kibana are implemented in a way that they add some performance overhead even if the search session is not saved. We are working on improving that aiming to tend search session impact to 0 when they are not saved.
But as of now, these are some load testing results with search sessions on and off:

Conditions

Results

Focusing just on a dashboard scenario

Single Kibana, 2 es nodes (default cloud config)

Scenario Total Requests Events/second Min 50th pct 75th pct 95pct 99th pct Max Mean Std dev
Search sessions enabled 23120 68.2 21 3968 6031 9568 12414 18137 4047 3004
Search sessions disabled 23477 70.7 22 3651 5574 8389 11726 15007 3843 2725

fill gatling report multiple es nodes.zip

Then I reduced the number of elasticsearch nodes to a single node and the difference in the same testing scenario even more significant:

Single Kibana, singles es node

Scenario Total Requests Events/second Min 50th pct 75th pct 95pct 99th pct Max Mean Std dev
Search sessions enabled 19227 44.9 23 7351 11527 21453 27288 40196 8003 6171
Search sessions disabled 21165 54.3 21 5658 8915 16068 19690 23451 6055 4652

full gatling report a single es nodes.zip

@rayafratkina
Copy link
Contributor

cc @crob611 @jb1b84 @sixstringcode
I wonder if fixing time interval to round per #94280 will end up hitting the cached search session and improving the performance?

@Dosant
Copy link
Contributor Author

Dosant commented Mar 1, 2022

I wonder if fixing time interval to round per #94280 will end up hitting the cached search session and improving the performance?

This would help with starting fewer new searches in some Kibana usage scenarios, so I agree it would help with overall cluster load in some cases.
But with search sessions, we know that they are implemented in a way that when they are enabled, but not actually used, they still add additional overhead to Kibana and Elasticsearch (what this comparison shows). We are working on an RFC to change it and work towards the minimal impact on performance until the search session is saved

@rayafratkina
Copy link
Contributor

rayafratkina commented Mar 1, 2022

This would help with starting fewer new searches in some Kibana usage scenarios, so I agree it would help with overall cluster load in some cases.

I think this is the scenario we should be optimizing for at this point - most real-world usage of solutions means dashboards are created by a subset of users and/or are rarely modified but many users need to view them and do so often. Anything we can do to help a dashboard "hit cache" by default is important

@Dosant
Copy link
Contributor Author

Dosant commented Mar 1, 2022

I think this is the scenario we should be optimizing for at this point - most real-world usage of solutions means dashboards are created by a subset of users and/or are rarely modified but many users need to view them and do so often. Anything we can do to help a dashboard "hit cache" by default is important

For general performance, I agree that elasticsearch "cache hit" is definitely something we should optimize for (#94280)

But I think it is unrelated to the problem that current search session implementation adds additional load for every search run even until the session is saved by the user.

@exalate-issue-sync exalate-issue-sync bot added the impact:needs-assessment Product and/or Engineering needs to evaluate the impact of the change. label Mar 18, 2022
@petrklapka petrklapka added Team:DataDiscovery Discover, search (e.g. data plugin and KQL), data views, saved searches. For ES|QL, use Team:ES|QL. and removed Team:AppServicesSv labels Nov 21, 2022
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-data-discovery (Team:DataDiscovery)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:Search Sessions Feature:Search Querying infrastructure in Kibana impact:needs-assessment Product and/or Engineering needs to evaluate the impact of the change. performance Team:DataDiscovery Discover, search (e.g. data plugin and KQL), data views, saved searches. For ES|QL, use Team:ES|QL.
Projects
None yet
Development

No branches or pull requests

4 participants