使用 dmesg 来查看一些硬件或驱动程序的信息或问题。

es性能测试:抛出大量429错误,CPU利用率仅70%,如何让CPU利用率跑到90%以上?

Elasticsearch | 作者 Ipromise | 发布于2019年11月12日 | 阅读数:6379

测试拓扑:1个master节点(CPU2核,服务器内存8G),2个数据节点(CPU2核,服务器内存32G)。三个节点分别部署在三台服务器上。

测试表现:向数据节点1发送写入请求,写入速率约为600个请求每秒,大量请求返回429(reject,队列满)。但数据节点1、2的CPU利用率仅百分60%,内存60%。并未达到性能极限。

问题1:为何抛出大量429错误,CPU却没有跑满?
问题2:如何让CPU跑到90%以上?
已邀请:

zqc0512 - andy zhou

赞同来自: Ipromise

try low bulk 

trycatchfinal

赞同来自: Ipromise

CPU是用来计算的,写入是IO操作。
这两个没有直接关系
匿名用户

匿名用户

赞同来自: Ipromise

写入和查询,一个是高IO 一个是高CPU,一个是cpu密集型,一个是io密集型。
 
如果这些都不了解, 我不懂你是怎么测试的。
 
难道测试,是随便测试几个插入,几个查询就行吗?
 
测试必须全面覆盖才行吧
1,服务器本身的硬件测试
2,服务器 本身的配置测试
3,安装ES软件以后,集群之间的基本测试,基准测试
4,此时才开始业务场景测试
 

everything - 80后IT

赞同来自: Ipromise

大量请求返回429(reject,队列满),这就说明 写入 已经达到极限了啊,都拒绝了。插入是不会消耗CPU的,除非有其他的连带操作。
比如插入的过程中,Elasticsearch 会做段文件合并,会消耗大量的cpu和load,当然也会消耗io。
一般对于es集群,都是单生产者,多消费者,或者几个生产者。而你测试的时候,好像是使用了大量的生产者去插入。
难道是想实现向mysql一样的,大量的增加,删除,修改,功能吗?

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

除了楼上的,考虑写入优化的处理:

1,设置副本为0,写入完毕再设置。
2,设置refresh_interval为30s甚至更大
3,并发bulk和线程池关系,可以修改下线程池队列大小以提升写入性能


目的:打满cpu

要回复问题请先登录注册