0

我使用rails-tire-elasticsearch,主要是一切都运行良好,但有时我的服务器开始很慢。所以我必须重新启动 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]}

有人明白这一点吗?

4

1 回答 1

0

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

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

您可以查看 java jmx 管理控制台,了解进程在做什么以及它有多少内存。

于 2014-01-06T15:17:22.877 回答