Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Модули индексов ›Хранилище

Предварительная загрузка данных в кэш файловой системы

Это экспертный параметр, подробности которого могут измениться в будущем.

По умолчанию Elasticsearch полностью полагается на кэш файловой системы операционной системы для кэширования операций ввода-вывода. Можно установить index.store.preload, чтобы указать операционной системе загрузить содержимое файлов горячих индексов в память при их открытии. Этот параметр принимает список расширений файлов, разделенных запятыми: все файлы с расширением из этого списка будут загружены при открытии. Это может быть полезно для повышения производительности поиска в индексе, особенно при перезагрузке хостовой операционной системы, так как это приводит к сбросу кэша файловой системы. Однако имейте в виду, что это может замедлить открытие индексов, так как они станут доступными только после загрузки данных в физическую память.

Этот параметр имеет только наилучшие усилия и может вообще не работать в зависимости от типа хранилища и хостовой операционной системы.

Параметр index.store.preload — это статический параметр, который можно установить в config/elasticsearch.yml:

index.store.preload: ["nvd", "dvd"]

или в настройках индекса во время создания индекса:

resp = client.indices.create(
    index="my-index-000001",
    settings={
        "index.store.preload": [
            "nvd",
            "dvd"
        ]
    },
)
print(resp)
response = client.indices.create(
  index: 'my-index-000001',
  body: {
    settings: {
      'index.store.preload' => [
        'nvd',
        'dvd'
      ]
    }
  }
)
puts response
const response = await client.indices.create({
  index: "my-index-000001",
  settings: {
    "index.store.preload": ["nvd", "dvd"],
  },
});
console.log(response);
PUT /my-index-000001
{
  "settings": {
    "index.store.preload": ["nvd", "dvd"]
  }
}

Значение по умолчанию — пустой массив, что означает, что ничего не будет загружено в кэш файловой системы заранее. Для индексов, которые активно используются для поиска, вы можете установить его на ["nvd", "dvd"], что приведет к тому, что нормы и значения документов будут загружаться в физическую память заранее. Это два первых расширения для рассмотрения, так как Elasticsearch выполняет произвольный доступ к ним.

Для указания того, что все файлы должны быть предварительно загружены, можно использовать символ подстановки: index.store.preload: ["*"]. Однако, как правило, нет смысла загружать все файлы в память, особенно файлы для хранимых полей и векторов терминов, поэтому лучшим вариантом может быть установка значения ["nvd", "dvd", "tim", "doc", "dim"], что предварительно загрузит нормы, значения документов, словари терминов, списки сообщений и точки, которые являются наиболее важными частями индекса для поиска и агрегаций.

Для поиска векторов, при использовании приближенного поиска k ближайших соседей, вы можете установить параметр для файлов поиска векторов. Подробный список файлов см. в статье по предварительной загрузке векторов.

Обратите внимание, что этот параметр может быть опасен для индексов, размер которых превышает размер основной памяти хоста, так как это приведет к сбросу кэша файловой системы при повторном открытии после больших слияний, что замедлит индексирование и поиск.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/preload-data-to-file-system-cache.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API