繁体   English   中英

Elasticsearch Java使用非常高的CPU和MEMORY

[英]Elasticsearch Java using very high CPU and MEMORY

Elasticsearch由于CPU使用率过高而突然停止工作,现在当我重新启动它时,它一直在使用大约100%的CPU和58%的内存,并且不会下降。 大约有1.300.000数据链接到Elasticsearch。 使用Linux服务器Ubuntu 15.04

默认/ elasticsearch

ES_HEAP_SIZE=2g (half of my memeory)
MAX_OPEN_FILES=65535
MAX_LOCKED_MEMORY=unlimited

limits.conf中

elasticsearch - nofile 65535
elasticsearch - memlock unlimited

elasticsearch.yml

bootstrap.mlockall: true

curl http://localhost:9200/_nodes/hot_threads?pretty=true

::: {elasticnode} {wrdxzFcXT0aTXnp4R5KFbA} {127.0.0.1} {localhost / 127.0.0.1:9300} 2016-03-01T10:24:09.884Z上的热线程,时间间隔= 500ms,busiestThreads = 3,ignoreIdleThreads = true:93.7 %(500ms中的468.4ms)线程'elasticsearch [elasticnode] [clusterService#updateTask] [T#1]'10/10快照共享以下29个元素sun.nio.fs.UnixNativeDispatcher.readdir(本机方法)sun .nio.fs.UnixDirectoryStream $ UnixDirectoryIterator.readNextEntry(UnixDirectoryStream.java:168)sun.nio.fs.UnixDirectoryStream $ UnixDirectoryIterator.hasNext(UnixDirectoryStream.java:201)org.elasticsearch.index.translog.Translog $ OnCloseRunnable.handle(Translog .java:726)org.elasticsearch.index.translog.Translog $ OnCloseRunnable.handle(Translog.java:713)org.elasticsearch.index.translog.ChannelReference.closeInternal(ChannelReference.java:67)org.elasticsearch.common.util .concurrent.AbstractRefCounted.decRef(AbstractRefCounted.java:64)org.elasticsearch.index.translog.TranslogReader.close(TranslogReader .java:143)org.apache.lucene.util.IOUtils.close(IOUtils.java:97)org.elasticsearch.index.translog.Translog.close(Translog.java:425)org.apache.lucene.util.IOUtils .close(IOUtils.java:97)org.apache.lucene.util.IOUtils.close(IOUtils.java:84)org.elasticsearch.index.engine.InternalEngine.closeNoLock(InternalEngine.java:990)org.elasticsearch.index .engine.Engine.close(Engine.java:1147)org.apache.lucene.util.IOUtils.close(IOUtils.java:97)org.apache.lucene.util.IOUtils.close(IOUtils.java:84)org .elasticsearch.index.shard.IndexShard.close(IndexShard.java:837)org.elasticsearch.index.IndexService.closeShardInjector(IndexService.java:443)org.elasticsearch.index.IndexService.removeShard(IndexService.java:416)org .elasticsearch.indices.cluster.IndicesClusterStateService.failAndRemoveShard(IndicesClus terStateService.java:743)org.elasticsearch.indices.cluster.IndicesClusterStateService.applyMappings(IndicesClusterStindateService.java:364)org.elasticsearch.Inc。 ice.clusterChanged(IndicesClusterS tateService.java:164)org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(InternalCluste rService.java:600)org.elasticsearch.cluster.service.InternalClusterService $ UpdateTask.run(InternalClusterServ ice。 )。 .concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)java.lang.Thread.run(Thread.java:745)

线程'elasticsearch [elasticnode] [transport_clie]使用0.1%(500ms中为263.4micros)cpu
nt_timer] [T#1] {Hashed wheel timer#1}'10/10快照,共享以下5个元素java.lang.Thread.sleep(本机方法)

org.jboss.netty.util.HashedWheelTimer $ Worker.waitForNextTick(HashedWheelTimer.java:445)org.jboss.netty.util.HashedWheelTimer $ Worker.run(HashedWheelTimer.java:364)org.jboss.netty.util.Thread.naming运行(ThreadRenamingRunnable.java:108)java.lang.Thread.run(Thread.java:745)

查询示例。 这是elasticsearch.php的代码:

public function advancedquery($type, $query) {
    return $this->call($type . '/_search', 'POST', $query);
}

知道这是什么意思吗? 我可以根据需要提供任何其他信息。

根据评论。 您每10分钟运行一次cronjob ,而node.jsJavaScript运行一个文件。 根据您的问题,让JS文件在同一服务器上ping PHP文件。 在同一台服务器上,您有一个运行posix内容的Java核心。

您的CPU重载问题的答案是:

选择一个系统。 您在同一实例上运行三个环境。 Java和PHP在Apache上运行,在NGINX上运行Node.JS。 而且,您甚至不应该跨Java和PHP。 那就是问题所在。 就像同时运行AutoCad,Final Cut Pro和Unreal Game Engine一样……是不可能的。

当然,将系统压缩为您选择的一种语言,当然, AWS开发工具包也支持这种语言。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM