因为网上有建议新手学习开源开发,从比较高的版本开始 ,刚开始学习使用 es 7.3.2,在搭建一套 EL+自己的查询 系统,用来采集,查看,公司客户的云上应用日志
现有一个问题,本想按 一个应用一个index,type 则对应 应用的不同文件 err.log info.log 等,如果客户应用数量达到了上万个,甚至十万个,这个。。。。我看有人说 3000个index,就已经很慢了;
index的数量到底会不影响查询速度?
如果 10万个index 里面包含 100亿级别数据 和 多个index 一起包含 100亿数据,他们之间的查询性能应该不一样吧,查询可以指定 index,范围会小很多,理论上速度会更快不是?
index 的数量 和 里面包含的数据量怎么样来平衡呢?
现有一个问题,本想按 一个应用一个index,type 则对应 应用的不同文件 err.log info.log 等,如果客户应用数量达到了上万个,甚至十万个,这个。。。。我看有人说 3000个index,就已经很慢了;
index的数量到底会不影响查询速度?
如果 10万个index 里面包含 100亿级别数据 和 多个index 一起包含 100亿数据,他们之间的查询性能应该不一样吧,查询可以指定 index,范围会小很多,理论上速度会更快不是?
index 的数量 和 里面包含的数据量怎么样来平衡呢?
3 个回复
rojay - 杭州的一枚90后初入职场的IT男
赞同来自:
一般数据量规模比价大的时候,目前总体的思路是分索引,就是按照时间区间进行分割。后续查询的时候,首先根据查询条件里面的时间区间去确定要去查找的对应索引,这样第一步就缩小查询范围,增加查询性能。
zlzlsx
赞同来自:
匿名用户
赞同来自:
一个集群是有最大节点限制,最大内存限制,最大磁盘空间限制的。一个集群最大索引数,最大分片数都是有限制的。
一个集群,最大节点最好不要超过20个,(分不同的场景)。一个节点的内存最好是64GB,或者128GB,硬盘最好是10TB或者20TB,
cpu 至少20核心,最好40核心。
你这种场景,不应该只用一个集群, 接入一种业务,一个集群比较好(按照你的描述,业务就是你接入的应用)。
这样的最有扩展的,最大隔离不用的业务,相互之间无影响,一个集群挂掉,不影响其他集群业务。
千万不要所有业务只用一个集群,所有索引放在一个集群。