#elasticsearch
#elasticsearch
Вопрос:
Вот начальная статистика из AWS ElasticSearch
Count: 98365255
Size in Bytes: 62.24 GB
После того, как я удалил около 1/3 документов
Панель мониторинга AWS ElasticSearch показывает
Count: 68782759
Size in Bytes: 57.82 GB
Я не видел слишком много свободного места после удаления 1/3 документов.
Итак, я напрямую вызвал _stats api, я получил другой размер в байтах.
"docs": {
"count": 68782759,
"deleted": 32680935
},
"store": {
"size_in_bytes": 62078477520,
"throttle_time_in_millis": 0
},
Текущее количество соответствует панели мониторинга AWS Elasticsearch:
68782759.
Но size_in_bytes
62078477520.
Он почти такой же, как и размер до того, как я выполнил массовое удаление,
62.24 GB.
Простыми словами,
Я предполагал, что получу большой размер свободного места после удаления 1/3 документов.
- Панель мониторинга AWS показывает, что я освобождаю только 1/10 места после удаления 1/3 документов
- _stats показывает, что после удаления 1/3 документов у меня почти не освободилось места.
Должен ли я ждать, пока данные size_in_bytes будут корректными позже?
Должен ли я выполнять какие-то действия по обновлению, чтобы получить свободное место после удаления документов?
Спасибо!
Ответ №1:
Я нашел ответ здесь.
https://discuss.elastic.co/t/free-disk-space-monitoring-after-deleting-records/146651
Ответ Bernt_Rostad,
«Место на диске не освобождается автоматически при удалении документов из индекса. Причина этого в том, что сегменты индекса, строительные блоки сегментов, являются неизменяемыми индексами Lucene. Это означает, что документ, хранящийся в сегменте, никогда физически не обновляется и не стирается, а просто помечается как удаленный, если вы выполняете обновление или удаление для него в Elasticsearch.
Из-за этого Elasticsearch будет время от времени выполнять слияние сегментов в индексе, обычно когда в индексе очень много маленьких сегментов или количество документов, помеченных как удаленные, составляет большой процент от общего количества сохраненных документов («большой» может составлять 20-30%). Когда происходит слияние, Elasticsearch считывает два или более меньших сегмента и записывает их в новый больший сегмент. В процессе Elasticsearch пропустит все документы, помеченные как удаленные, так что после завершения создания нового сегмента и удаления оригиналов меньшего размера у вас будет сохранено место на диске, соответствующее размеру удаленных документов «.
Существуют подходы к освобождению пространства сейчас. Но в моем случае я просто подожду, пока слияние сегментов освободит пространство.
Примечание:
После ожидания в течение одного дня освободилось место на диске.
"primaries": {
"docs": {
"count": 68784759,
"deleted": 1885108
},
"store": {
"size_in_bytes": 42676386191,
"throttle_time_in_millis": 0
},
Уменьшено с 62078477520 до 42676386191.