NOTE: ElasticSuite and its affiliated applications are third-party tools not currently supported by Magento. This content is being presented as informational only and not as an indication of what is enabled for Support coverage.
This article talks about the issue of Elasticsearch memory problems caused by tracking indices produced by the ElasticSuite plugin.
AFFECTED PRODUCTS AND VERSIONS
It is not confirmed what versions of ElasticSuite have this issue, but the 2.8.0 version contains a fix.
Issue
If the ElasticSuite third-party plugin is installed, you might experience Elasticsearch memory issues and the Elasticsearch service might crash caused by ElasticSuite tracking indices. Symptoms include:
- Elasticsearch crashes with no memory errors.
- When running a health command
curl -m1 localhost:9200/_cluster/health?pretty
orcurl -m1 elasticsearch.internal:9200/_cluster/health?pretty
(for starter accounts) there are hundreds or thousands ofunassigned_shards
- Elasticsearch or site performance is severely degraded.
- "No alive nodes found in your cluster" in Elasticsearch deploy or log errors.
Cause
ElasticSuite has a new feature that creates tracking indices. These tracking indices record which search terms are the most used, which terms generate the most turnover and which terms are leading to a no results page so merchants can create synonyms to fix them. It does not appear to delete the tracking indices so Elasticsearch runs out of resources and crashes.
Solution
To upgrade to ElasticSuite 2.8.0 or to learn how to disable the Search Analytics Dashboard feature in the ElasticSuite plugin follow the steps in Elasticsearch crashes or has out of memory issues when using ElasticSuite plugin.
However, if you can't upgrade to the 2.8.0 version or disable the Search Analytics Dashboard, you can create a cron job to delete the tracking indices.
This command deletes indices created in the last month:
curl -XDELETE localhost:9200/<name in index>_tracking_log_$(date
+'%Y%m' -d 'last month')*
If you want to delete indices at a set time-frequency create a cron job by referring to these DevDocs articles: