身安不如心安,屋宽不如心宽 。

es 导致机器挂了

Elasticsearch | 作者 beihaizai | 发布于2016年08月23日 | 阅读数:3607

   装了一个es小集群,总共有两台机器,千兆网络,每个es进程内存为32g,进程最大打开文件数是65535,655360.
   但大规模查询时,或者插入数据格式有问题时(比如时间格式),最后会导致机器挂了,不知道有没有哪位朋友遇到过这个问题没。
已邀请:

medcl - 今晚打老虎。

赞同来自:

异常会严重影响性能,尽量在插入数据的时候检验下格式

yqcute

赞同来自:

请问你的es的版本是什么?机器弄挂具体是什么情况呢?内存吃满了,还是cpu被占用了没有被释放? 可以详细描述一下。

Es本身自带动态映射功能。在最新的es版本里面2.3.5里面,对于日期和数字的自动转化默认是打开的
 
当数据第一次进入es的时候,如果符合默认日期格式或者数字格式,则字段会被定义成对应的格式。字段类型被定义后,如果之后的数据格式不符合定义的话,es则会报错,返回错误信息,并且写对应的日志。但是可以确定,es或者说系统不会因为数据格式问题挂掉。
 
个人有一种猜测:
比如当格式被定义为日期类型后,接下来的数据大部分是不符合es的字段定义。则此时es会捕捉异常,并进行后续操作(如写日志)。这时候,如果大批量的数据插入都会报异常的话,则这时系统就会占用io和cpu进行后续处理。如果数量太大,可能导致cpu和内存跑满。导致系统卡住,以致挂掉。
 
所以,需要知道你系统挂掉是因为什么原因? 但是,可以肯定的是,如果单纯的数据格式不对,是不会导致系统挂掉的。有可能是格式转换异常,带来的资源消耗。导致的连带问题。
 
but,纯属猜测,需有日志才能确定原因。
 
 

要回复问题请先登录注册