2013-06-27 6 views
0

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

graph from newrelic

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

EDIT: , наконец, он не связан с массовой вставкой

У меня есть только эта строка в журнале

[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]} 

ли кто-то понимает это ?

ответ

0

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

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

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