Зависание и последующее падение сервера elasticsearch

Здравствуйте. Я добавил в своё rails приложение
gem 'elasticsearch-model'
gem 'elasticsearch-rails'.
Настроил согласно инструкции, поиск работает. Но, постоянно при старте поиска идёт жуткое подвисание всей системы и после стоп сервиса elastic 9200. Приходиться делать restart. Иногда система не оживает. Проект учебный, всего поиск идёт по 15 записям. Оперативная память в размере 1гб свободна. Попытался в момент начала зависания, когда ещё что-то можно сделать взять логи с _nodes/stats logs

А что в логах elasticsearch?

Извините, я новичок. А как их посмотреть?)

Запустите команду GET /_nodes/settings. Вы получите назад что-то вроде:

{
  "_nodes" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "cluster_name":"elasticsearch",
  "nodes" : {
    "4irbd1T5TZqb03W9rGp3WQ" : {
      "name" : "...",
      ...
      "settings" : {
         ...
        "path" : {
          "logs" : "/usr/share/elasticsearch/logs",      <-- Логи должны быть тут 
         ...
        },
        "discovery" : {
        ...     

Интересует тот, который называется elasticsearch.log

вроде эти логи

Похоже, что кто-то elasticsearch из вне прибивает. Может OOMKiller безобразничает. Сколько всего памяти на сервере и что там еще запущено?

вот скрин из диспетчера https://i.imgur.com/YMbJQeF.png Запущен ide rubymine и mozilla. Система ubuntu на виртуальной машине.

Да. Скорее всего OOMKiller мешается. Попробуйте запустить с 512m. Задать память можно в файле jvm.options:

-Xms512m
-Xmx512m

вроде положительный результат есть, уже 20 минут ничего не виснет. Спасибо за помощь.

Теперь у меня новая проблема в тестовом окружении. Мои тесты не работают. При создании экземпляра модели gem Factory_bot_rails, ошибка ``` Failure/Error: let(:post) { FactoryBot.create :post, user: user }

 Elasticsearch::Transport::Transport::Errors::Forbidden:
   [403] {"error":{"root_cause":[{"type":"cluster_block_exception","reason":"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"}],"type":"cluster_block_exception","reason":"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"},"status":403}

Я попытался добавить создание и рефреш индексов в тесты let(:user) { FactoryBot.create :user }
let(:post) { FactoryBot.create :post, user: user }
Post.elasticsearch.create_index!
Post.elasticsearch.refresh_index! ``` но это не изменило ничего

У вас права доступа на кластере настроены?

не могу сказать, а как можно проверить? я сам ничего не настраивал.

Вы вручную, через curl или kibana без введения пароля можете какой-нибудь индекс создать?

сейчас попробовал создать, не вышло. Хотя до этого всё создавалось без проблем. Ошибка [403] {"error":{"root_cause":[{"type":"cluster_block_exception","reason":"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"}],"type":"cluster_block_exception","reason":"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"},"status":403}

сейчас попробовал создать, не вышло. Хотя до этого всё создавалось без проблем.

Тогда скорее всего у вас это происходит потому, что у вас диски на сервере переполнились. Когда диски наполняются больше чем на 95%, elasticsearch устанавливает этот блок, чтобы предотвратить полное исчерпание дискового пространства. Надо либо диски добавить, либо данные почистить.

я добавил сегодня, а как мне сейчас перезапустить это всё? чтобы они опять стали доступны

вы путь поменяли к данным? если да - то надо elasticsearch перезапустить

нет пути не менял. Сделал сейчас sudo service elasticsearch stop и потом start. Попробовал создать индекс, не работает.

Если вы пути не меняли, то как вы размер доступного дискового пространства увеличили?

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