2014-12-04 2 views
3

У меня есть Elasticsearch 1.2.2, установленный на сервере Debian, с индексированными документами ~ 5.3M. Когда я бегу myindex/_stats, я получаю следующую информацию:Elasticsearch: как уменьшить использование диска

{ 
    "_shards": { 
     "total": 10, 
     "successful": 5, 
     "failed": 0 
    }, 
    "_all": { 
     "primaries": { 
     "docs": { 
      "count": 5306837, 
      "deleted": 100209 
     }, 
     "store": { 
      "size_in_bytes": 32003706527, 
      "throttle_time_in_millis": 1657592 
     }, 
    .... 
} 

, который говорит мне общий размер моих документов составляет ~ 32 Гб

Однако размер папки данных в elasticsearch папка 72GB

с Elasticsearch doc, я попытался запустить

curl -XPOST 'http://localhost:9200/myindex/_optimize?only_expunge_deletes=true' 

Выполнение этой команды имеет

  • уменьшил количество удаленных Документов от 300k до 100k (как возвращенный _stats команды выше), но не 0, как я ожидал бы
  • уменьшить использование диска с 90G в 72g, но не 32G что фактический размер моих документов

(примечание: я запустил эту команду на все индексы = curl -XPOST 'http://localhost:9200/_optimize?only_expunge_deletes=true, без существенных различий)

Как Я уменьшаю размер папки данных до фактического размера моих документов?

ответ

0

Вы должны выполнить следующие действия:

curl -XPOST 'http://localhost:9200/myindex/_optimize?max_num_segments=1 

Может быть, вы должны запустить его несколько раз. (Потому что, если есть слишком много сегментов, он не будет объединяться со всеми из них за один шаг.)

+0

Спасибо за ваш ответ. Я попробовал это, потребовалось 45 минут, но, к сожалению, это не уменьшило использование диска – benoit

3

По умолчанию elasticsearch объединяет сегмент, если его процент удаления превышает 10%. Если вы хотите удалить все документы, помеченные как удаленные в индексе, вы должны изменить index.merge.policy.expunge_deletes_allowed в elasticsearch.yml и установить его в 0, затем запустить команду оптимизации:

curl -XPOST 'http://localhost:9200/myindex/_optimize?only_expunge_deletes=true'

Вы можете посмотреть at this link для получения более подробной информации о политике слияния.

0

Я думаю, что разница, которую вы видите в размере, связана с индексацией и метаданными документа, которые являются нормальными для любой базы данных. Размер индексов зависит от ваших сопоставлений. Так что технически размер ваших документов никогда не будет таким же, как размер папки данных elasticsearch.

Следующие ссылки могут помочь объяснить это лучше:

Using too much disk space

Elastic blog about storage requirements

Смежные вопросы