关于 elasticsearch 机器的选择 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Q9K
V2EX    Elasticsearch

关于 elasticsearch 机器的选择

  •  
  •   Q9K 2023-11-29 15:59:32 +08:00 3358 次点击
    这是一个创建于 749 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们小组现在有 2000-2500 的预算购买一个服务器,我们的数据量在 1 亿到 10 亿之间, 我们需要购买一个月的云服务, 最后验收的时候需要达到秒级查询和 1000-10000qps 的要求, 我们看了一下华为云的服务器,这个预算可以让我们买 3 台 4 核 16G 的机器 或者 1 台 8 核 64G 的机器 我们想问一下 我们应该怎么选择 或者大家有没有推荐更好的选择

    29 条回复    2023-12-01 15:07:07 +08:00
    Q9K
        1
    Q9K  
    OP
       2023-11-29 16:02:06 +08:00
    之所以是 1000-10000qps 的要求,是因为跟最后的评分有关,对我们来说,1000qps 应该也够了
    1018ji
        2
    1018ji  
       2023-11-29 16:21:59 +08:00
    在一个生产集群中我们可以对这些节点的职责进行划分,建议集群中设置 3 台以上的节点作为 master 节点,这些节点只负责成为主节点,维护整个集群的状态。再根据数据量设置一批 data 节点,这些节点只负责存储数据,后期提供建立索引和查询索引的服务,这样的话如果用户请求比较频繁,这些节点的压力也会比较大,所以在集群中建议再设置一批 client 节点(node.master: false node.data: false),这些节点只负责处理用户请求,实现请求转发,负载均衡等功能。


    难道你要混部?
    somebody1
        3
    somebody1  
       2023-11-29 16:34:20 +08:00
    1000-10000qps 要求非常高了。
    如果是这样的话,数据库就没那么重要了,因为数据库是扛不住这么大的 qps 的。肯定要做分流,缓存之类的。
    这么高的要求,就 2500 块钱,闹呢?
    Hieast
        4
    Hieast  
       2023-11-29 16:52:24 +08:00
    @somebody1 #3 说不定是同一个查询请求 1000qps 呢(狗头
    Q9K
        5
    Q9K  
    OP
       2023-11-29 17:19:28 +08:00
    @somebody1 我们是打算把大部分数据都放在 es 中,mysql 里只放一些用户相关的数据,qps 的要求主要是对搜索而言的,大佬按照您的意思,2500 一个月可能还是太少了吗预算
    Morriaty
        6
    Morriaty  
       2023-11-29 17:32:22 +08:00
    你得说清楚:
    1. 具体是什么查询,单 term query 和复杂的 bool + function_score 查询,差别大了去了
    2. 数据结构是啥样的
    3. 只读还是同时读写
    4. 全靠 es 抗,还是程序层会做缓存
    nicoljiang
        7
    nicoljiang  
    PRO
       2023-11-29 17:36:23 +08:00
    云服务器的话预算明显太低了(单台预算翻倍,然后需要 3 台)。
    因为云服务的高速 IO 磁盘非常非常贵,而 ES 恰好是高性能 IO 场景。
    zhangxudong
        8
    zhangxudong  
       2023-11-29 17:40:01 +08:00
    2500 感觉只能捡垃圾搞服务器
    somebody1
        9
    somebody1  
       2023-11-29 18:00:19 +08:00
    @Q9K #5
    你对 1000-10000qps 可能没有概念。我按 1w 给你算,这种 qps ,假设你们用户只要使用就会查询数据库。那你们大概有 10w~100w 的活跃用户,活跃用户!!!,你们的总用户量大概是在数百万到数千万之间,取决于你们业务类型。

    百万千万级的用户,2.5k 买云服务器,你闹呢!这个用户体量,搞出来个新的腾讯云都分分钟的事情。
    Q9K
        10
    Q9K  
    OP
       2023-11-29 18:06:04 +08:00
    @Morriaty 大佬你好,数据是 openalex 的那种论文数据源数据,每一条数据记录了论文的标题,概要,作者相关信息等等,导入完数据后我们是只读的,查询只是会涉及到按照论文某些字段比如发表时间有 bool 查询,我们测试的时候发现 es 本身会有做缓存的情况,有可能是我们用的 elasticsearch_dsl 做了缓存,我们自己还会用 redis 做一些缓存
    Q9K
        11
    Q9K  
    OP
       2023-11-29 18:08:51 +08:00   1
    大佬你好,不好意思我没有说清楚我们这个项目背景,我们这个是一个软工的团队大作业,所以并没有那么多用户,对 qps 的要求应该是需要我们最后用 jmeter 做压力测试需要达到一定的指标,怎么说呢,就是我们也不太懂生产方面相关的东西。
    Q9K
        12
    Q9K  
    OP
       2023-11-29 18:11:50 +08:00
    @Q9K 之所以是 2000-2500 的预算,是因为学院只给发了一个 2000 的优惠券,我们小组 10 个人,我问了一下大家大概就是说能接受一起添点但不是特别多,另外我还想问一下 1000qps 可能大概需要多大的带宽对我们这个场景来说,我们这个项目大概就是说通过关键词查询论文和作者信息等等
    Q9K
        13
    Q9K  
    OP
       2023-11-29 18:13:32 +08:00
    @1018ji 您好,应该不是,我们都没有听说过混部这个名词
    Q9K
        14
    Q9K  
    OP
       2023-11-29 18:14:44 +08:00
    @nicoljiang 大佬按照你的意思,就是我们可能需要 3 台 16 核 64G 的服务器吗
    ntedshen
        15
    ntedshen  
       2023-11-29 18:16:05 +08:00
    2500 预算如果就个大作业,要不直接装一台算了,esxi 或者物理机都行。。。
    可能都不需要搞破解毕竟你可能都用不满试用期。。。
    但是你租 vps 可是从你购入开始就算钱的,就这数据量可能部署还没完千把块已经下去了。。。
    liuhan907
        16
    liuhan907  
       2023-11-29 18:25:21 +08:00
    1000qps ,根据你的查询复杂度和数据量,从一个 4c32g 小机器就能绰绰有余,到一个 10 节点集群都扛不住。一切皆有可能
    blackeeper
        17
    blackeeper  
       2023-11-29 20:52:41 +08:00
    业务数据量在 1 亿到 10 亿之间,要达到秒级查询,而且最低 1000qps ,2500 块怕不是在开玩笑?在加两个 0 说不定可以搞定

    给你的建议:鉴于 es 是高性能的 IO Java 应用程序,把 2000 买一台 CPU:内存比是 1:2 的 SSD vps 服务器,运行单节点 es
    验收的时候,不走真实的业务数据的 es 查询,随便造一点数据作为验收就可以了
    另外 500 块,小组的人一起吃个饭,(逃~
    iomect
        18
    iomect  
       2023-11-29 20:59:38 +08:00
    按最小的 1000qps 来算 每秒查询 1000 次
    一分钟 6 万次
    一小时 360 万次
    一天 8640 万次
    2.5k 解决这个?
    Q9K
        19
    Q9K  
    OP
       2023-11-29 21:32:31 +08:00
    @iomect 啊这,还是我们太天真了吗,我们想的是大部分没有那么大的压力,只有压测的时候需要达到这样的要求
    neoblackcap
        20
    neoblackcap  
       2023-11-29 22:05:09 +08:00
    @Q9K 一般校园系统,不是什么选课之类的活动,100qps 差不多了。而且很多时候是可以在前端人为控制速率的。还能加队列慢慢处理。
    而且 es 也要看索引以及分词做得好不好,不是说你们上了就能做到 10000qps 。腾讯他们自己分享过,他们的 QQ 登录服务器也是 1000qps 这个量级
    neoblackcap
        21
    neoblackcap  
       2023-11-29 22:05:47 +08:00
    @Q9K 当然了,腾讯那边是每台是 1000qps 这样子,不过他们是有做分流
    cctv6
        22
    cctv6  
       2023-11-29 22:14:13 +08:00
    如果内存能一次性放下所有的文档索引,磁盘 io 就算不用高配的,也没啥问题。数据量在几亿条,内存应该是够的。
    如果是我的话,大概率会选几个 4C/32G ,700 一块钱/月。3 台正好 2100 。

    我的建议是 ,可以开几个 按量计费/竞价实例 的 ECS 实例,把服务搭起来,数据导入进去,一天时间够测试完了,总费用不会超过 50 块钱。这样测试完了就知道该买什么配置的了。
    cctv6
        23
    cctv6  
       2023-11-29 22:19:36 +08:00
    基本上,遇到选机器配置的情况,我都是建议开 按量计费/竞价实例 实际测试一下,什么配置能选,什么配置不能选,基本上测试一下心里就有数了,开按量付费/竞价实例基本上也花不了多少钱。
    nicoljiang
        24
    nicoljiang  
    PRO
       2023-11-29 22:20:13 +08:00
    @Q9K 还得看你查询的复杂度。因为上亿的数据是个非常大的量级,但是看你的数据量也可大可小。但基本上不太可能都是内存可以容纳的级别。
    mjikop1231
        25
    mjikop1231  
       2023-11-30 14:10:29 +08:00
    mjikop1231
        26
    mjikop1231  
       2023-11-30 14:11:26 +08:00
    #25 先按查询场景去 banchmark 上对照一下呗,然后抗 1000 qps 你让缓存去抗,es 自己单机是不太好抗的
    Q9K
        27
    Q9K  
    OP
       2023-12-01 15:04:49 +08:00
    @mjikop1231 哦哦好的,我去看看
    Q9K
        28
    Q9K  
    OP
       2023-12-01 15:05:29 +08:00
    @cdlnls 也想过按量付费,但是担心自己短时间内搞不定就多花很多钱 555
    Q9K
        29
    Q9K  
    OP
       2023-12-01 15:07:07 +08:00
    @neoblackcap emmm ,我们这个就是学校的软工大作业项目,好多东西也不懂,1000qps 其实对我们来说还不知道意味着生产是怎样的一个级别
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     920 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 20:07 PVG 04:07 LAX 12:07 JFK 15:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86