网站免费维护期是多少,汽车网站建设流程,wordpress 相册浏览,全国工程造价咨询企业管理系统最近有客户在使用 Elasticsearch 搜索服务时发现集群有掉节点#xff0c;并且有 master 收集节点信息超时的日志#xff0c;节点的负载也很高#xff0c;不只是 data 节点#xff0c;master 和协调节点的 cpu 使用率都很高#xff0c;看现象集群似乎遇到了性能瓶颈。 查看…最近有客户在使用 Elasticsearch 搜索服务时发现集群有掉节点并且有 master 收集节点信息超时的日志节点的负载也很高不只是 data 节点master 和协调节点的 cpu 使用率都很高看现象集群似乎遇到了性能瓶颈。 查看了 Hot_threads, 发现大量线程被权限验证相关的类和方法占用主要在 RBACEngine 和 AuthorizationService 两个类。并且不止协调节点和数据节点master 节点居然也有那么多权限验证的操作
于是怀疑是不是对权限验证的使用方式不对在 github 上搜了下果然发现有人遇到和我们非常类似的场景。 Improve Authorization performance in clusters with a large number of indices #67987 提到有些个用户在达到数千或上万个索引的场景下在启用安全验证进行写入数据时服务端几乎会耗费掉所有 CPU 时间在 transport_worker 线程上进行权限验证从而阻塞其他传入请求 导致集群的吞吐量下降下降的程度似乎是 2 倍到 3 倍。 有人建议升级到 7.16 或更高版本来解决这个问题。
为了确认下我们的产品是否有类似现象我对两个服务进行了测试对比由于硬件资源有限只对单个节点进行了写入吞吐的压测。
测试条件
-Xms3g -Xmx3g16 逻辑核 CPU启用 security 验证预先创建了 1000 个索引每个索引 1 个 shard3 个别名
采用相同的 loadgen 脚本进行压测, 压测命令./loadgen-linux-amd64 -config loadgen-index_0.yml -d 120 -c 10
即每秒 10 个并发请求持续压测 120 秒每个 bulk 请求包含写入 5000 个 doc对单个索引进行压测。
Easysearch 1.0 写入了 6900000 条。 对比搜索服务 7.3.2 写入了 5865000 条。 压测完毕显示 Easysearch 的吞吐大约高出了 17%。
测试时观察 Hot_threadsEasysearch 除了 lucene 的写入和 merge 线程未发现权限验证相关热点线程表明了启用安全验证不会对 Easysearch 的写入造成性能影响。
关于 Easysearch INFINI Easysearch 是一个分布式的近实时搜索与分析引擎核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本并继续完善和支持更多的企业级功能。 与 Elasticsearch 相比Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。
官网文档https://www.infinilabs.com/docs/latest/easysearch
下载地址https://www.infinilabs.com/download