集群状态:3个EsMaster安装在三台机器节点上。
另外两台机器:分片安装了5个EsNode,每个实例内存均为25G,机器内存256G
ES 6.1.3版本
目前将数据存储在HBASE,将rowkey信息存储在ES中
查询单个索引,4亿条数据,30shard,单次查询时间在几十ms内
并发3000时速度能稳定在1s内
并发6000时查询速度2-3S,查询的过程中堆内存使用率正常
对于这种高并发的查询场景有没有优化的空间和思路,还有如何判断查询是否已经到达瓶颈状态
另外两台机器:分片安装了5个EsNode,每个实例内存均为25G,机器内存256G
ES 6.1.3版本
目前将数据存储在HBASE,将rowkey信息存储在ES中
查询单个索引,4亿条数据,30shard,单次查询时间在几十ms内
并发3000时速度能稳定在1s内
并发6000时查询速度2-3S,查询的过程中堆内存使用率正常
对于这种高并发的查询场景有没有优化的空间和思路,还有如何判断查询是否已经到达瓶颈状态
2 个回复
kennywu76 - Wood
赞同来自: printf_uck 、juin
1. 没台机器只安装一个ES node
2. 适当减少索引的分片数量,4亿数据,30个shard有些多了,搜索合并阶段的负载可能过重,减少到10个shard甚至4个shard,对比测试一下。
判断是否达到瓶颈,首先要监控search线程池的活动状况,queue是否一直很高,reject是否很高。 然后配合jvm gc情况,系统基础指标,cpu , io使用情况,判断瓶颈在那里。
liubin
赞同来自: