是时候用 ES 拯救发际线啦

(不点进来看看?)200并发压测两台主备ES服务器,CPU占用率在90%以上

Elasticsearch | 作者 hexiaohong | 发布于2018年05月24日 | 阅读数:11192

两台ES6.2.2服务器:(ES设置内存3G)
master:8核CPU、16G内存
slave::8核CPU、16G内存
 
模拟200用户进行并发简单查询测试,发现两台ES服务器的CPU都是非常高,到达了90%以上,只是简单的查询测试,没有进行复杂运算,不至于导致CPU飙升吧,大家帮忙分析分析,下面是压测过程的top相关指标:
 


V~S@]ZB(`VE_[)P74{53)27.png

 
 
 
试过以下场景:
1.把ES内存从3g翻倍至6G,cpu还是没有得到有效的下降。
2.并发数量从200变成100,还是一样。
 

100并发 TPS是840 响应时间是113, es这边CPU利用率是80左右
200并发 TPS是1124 响应时间是180, es这边CPU利用率是90左右 
 
已邀请:

JackGe

赞同来自: CarrieJin dotNetDR_

先通过GET _nodes/{node}/hot_threads 查看线程栈,是哪个线程占用cpu高,如果是elasticsearch[{node}][search][T#10]则是查询导致的。如果是elasticsearch[{node}][bulk][T#1]则是数据写入导致的。
 
看你提问是查询引起cpu高,可是截图里排在前面的进程有10106,10107等,机器上是混合部署的吗,压测环境需要排除其他进程对es的影响。

vearne - stay foolish stay hungry

赞同来自:

ES做分词索引的时候,本来就是比较耗费CPU的,正常现象

hexiaohong

赞同来自:

补充一下mapping
1.png

vearne - stay foolish stay hungry

赞同来自:

我们以前的压测数据是机械硬盘是1w/min  SSD 10w/min 单个实例
64GB内存  24核,你可以参考下

pengc - 90后IT

赞同来自:

ES查询本身就很耗费CPU,200并发查询,master应该没压力,单台slaveCPU高很正常。
你可以试试将slave内存设置8G,关闭服务器swap

zhangg7723

赞同来自:

这个CPU使用率也算正常,高并发的普通查询本来就消耗CPU的,内存不会用很多

qijc

赞同来自:

楼主,请问最后确定此现象属于正常吗?是不是扩了CPU就好了?

要回复问题请先登录注册