设置参数 `node.name` 可以自定义 Elasticsearch 节点的名字。 此条 Tips 由 medcl 贡献。

elasticsearch官方python库性能

Elasticsearch | 作者 EricShane | 发布于2018年08月28日 | 阅读数:4349

最近在用python写一个查询ES的服务,发展es官方提供的第三方库elasticsearch.search在并发查询时性能较差。每秒并发20个线程查询时耗时是实际took的10倍左右,但是用jmeter直接开线程并发调用es时又非常快,是不是我配置的不对?求大神
已邀请:

kennywu76 - Wood

赞同来自:

虽然我对这个库没啥经验,不过感觉上不会实际耗时是实际took的十倍左右,可能和你测试的方法有关系。 
 
也许你清楚,不过还是提醒一下es client到es server是持久化链接,并且线程安全的,因此只需要全局生成一个实例在多线程之间共享。 之前见过有人每个线程里都实例化一次es client,造成并发性能上不去的问题。 
 
另外你的测试方法是否是每秒都起20个新线程然后又销毁? 如果是这样,是否大量创建销毁线程引发了客户端的瓶颈? 考虑用线程池?

JackGe

赞同来自:

es官方压测工具rally就是使用elasticsearch python库来实现的,详见https://esrally.readthedocs.io ... .html
我们在使用rally压测es时,从rally端端看到的耗时与es查询took是几乎一样的。
你可以直接下载rally源码看下调用elasticsearch.search的传参信息。https://github.com/elastic/rally

要回复问题请先登录注册