rails-tire-elasticsearch: необходимо перезапустить сервер elasticsearch

Я использую rails-tire-lasticsearch, в основном все работает очень хорошо, но просто время от времени мой сервер начинает сильно тормозить. Поэтому мне нужно перезапустить службу elasticsearch, и тогда все снова пойдет хорошо.

график из newrelic

У меня сложилось впечатление, что это происходит после массовых вставок (около 6000 товаров). Можно ли это связать? Вставки длятся максимум 2 минуты, но все же после проблем с сервером

РЕДАКТИРОВАТЬ: наконец, он не связан с массовыми вставками

у меня в логе только эта строчка

[2013-06-29 01:15:32,767][WARN ][monitor.jvm              ] [Jon Spectre] [gc][ParNew][26438][9941] duration [3.4s], collections [1]/[5.2s], total [3.4s]/[57.7s], memory [951.6mb]->[713.7mb]/[989.8mb], all_pools {[Code Cache] [10.6mb]->[10.6mb]/[48mb]}{[Par Eden Space] [241.1mb]->[31mb]/[273mb]}{[Par Survivor Space] [32.2mb]->[0b]/[34.1mb]}{[CMS Old Gen] [678.3mb]->[682.6mb]/[682.6mb]}{[CMS Perm Gen] [35mb]->[35mb]/[166mb]}

Кто-то понимает это?


person user2016483    schedule 27.06.2013    source источник


Ответы (1)


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

ElasticSearch построен на Java и поэтому работает на JVM. Каждый процесс JVM имеет определенный набор памяти, который нужно выделить при запуске. Когда доступной памяти не хватает, происходит сбой, поэтому приходится производить сборку мусора, чтобы освободить место. Когда вы запускаете процесс Java с ограничением памяти, он занят большим количеством запусков GC и будет работать очень медленно.

Вы можете посмотреть в консоли управления java jmx, что делает процесс и сколько у него памяти.

person phoet    schedule 06.01.2014