rails - tire - elasticsearch:需要重启elasticsearch服务器

时间:2013-06-27 13:25:44

标签: ruby-on-rails elasticsearch tire

我使用rails - tire - elasticsearch,一切都主要工作得很好,但只是不时,我的服务器开始变得很慢。所以我必须重新启动elasticsearch服务,然后一切都恢复正常。

graph from 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]}

有人理解这个吗?

1 个答案:

答案 0 :(得分:0)

这只是在黑暗中刺伤,但根据您的报告,您的Java虚拟机可能存在错误的内存设置。

ElasticSearch是使用Java构建的,因此可以在JVM上运行。每个JVM进程都有一组已定义的内存,可在启动时分配。当可用内存不足时,它会崩溃,所以它必须进行垃圾收集以释放空间。当您在内存限制上运行Java进程时,它会占用很多GC运行并且会变得很慢。

您可以查看java jmx管理控制台,了解该进程正在执行的操作以及它具有多少内存。