[英]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.js在JavaScript
运行一个文件。 根据您的问题,让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.