对于百万行级别的数据用 ES 搜索,大内存+HDD 和小内存+SSD 哪个好? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Reign
V2EX    程序员

对于百万行级别的数据用 ES 搜索,大内存+HDD 和小内存+SSD 哪个好?

  •  
  •   Reign 2018-07-11 08:50:11 +08:00 6055 次点击
    这是一个创建于 2726 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前网站有 650 万行数据,数据库大小 8.1G ,后期可能会增至 10G 左右,目前选择服务器:

    1. 内存 16G+50G 固态硬盘,硬盘 iops 在固态硬盘中属于中规中矩
    2. 内存 64G+4T 机械盘,硬盘 iops 在机械盘中属于中规中矩

    这两者选哪个比较好?

    另外,ES 能不能像 Redis 一样,将所有索引数据全部存储在内存中,不是热数据是所有数据,这样的话,64G 完全能装得下 8.1G 的数据了,那肯定选择第二台服务器读写更快了

    第 1 条附言    2018-07-11 10:57:41 +08:00
    非常感谢各位回答,貌似倾向于大内存方案的更多,请问一下,如果设置 ES 的内存为 32G,剩下的内存分配给 Redis 和 MySQL 还够不够?
    24 条回复    2018-07-12 05:50:25 +08:00
    heeexy
        1
    heeexy  
       2018-07-11 09:00:15 +08:00   2
    Reign
        2
    Reign  
    OP
       2018-07-11 09:44:44 +08:00
    @heeexy 谢谢,我看过,就是不知道对于我这种读远大于写的场景,到底内存和 SSD 哪个重要?
    xuminzhong
        3
    xuminzhong  
       2018-07-11 09:56:48 +08:00
    读大于写,内存重要,因为第一次读取后,如果内存有空闲的,OS 会一直缓存在内存里。
    ytmsdy
        4
    ytmsdy  
       2018-07-11 10:01:17 +08:00 via iPhone
    内存有 64g,就算把 10g 的数据全部加载到内存里也放的下啊
    yuqaf
        5
    yuqaf  
       2018-07-11 10:01:25 +08:00
    这么点数据,mysql 都足够了。。。
    heeexy
        6
    heeexy  
       2018-07-11 10:02:56 +08:00
    内存,尤其是果还要搞聚合查询的话

    https://www.elastic.co/blog/a-heap-of-trouble
    Reign
        7
    Reign  
    OP
       2018-07-11 10:06:29 +08:00
    @ytmsdy ES 有没有一种模式可以让所有数据常驻内存
    AntonChen
        8
    AntonChen  
       2018-07-11 10:53:30 +08:00 via Android
    大内存,ES 就是玩内存的,只要是 open 状态的就会载入内存。个人建议单机 64G 内存,heap 配置一半
    alvin666
        9
    alvin666  
       2018-07-11 11:06:51 +08:00 via Android
    @Reign 大不了开虚拟内存盘,怎么看都是第二个搭配划得来
    crawl3r
        10
    crawl3r  
       2018-07-11 11:09:08 +08:00
    就算是 10g, mysql+ssd 完全够用了。最近在搞 2T 数据,mysql 分片+ssd 完全够了
    sparkssssssss
        11
    sparkssssssss  
       2018-07-11 13:05:33 +08:00
    这么点数据,选大内存啊
    可以划 10G+的内存创建一块盘,然后 es 的 data 放过去
    slixurd
        12
    slixurd  
       2018-07-11 13:12:10 +08:00
    mdos
        13
    mdos  
       2018-07-11 16:08:47 +08:00 via Android
    哈哈哈哈,翻到这标题的时候我小弟坐在边上,直接就问我“ es 文件管理器搜索还要问别人的嘛?”我我我 xswl
    heeexy
        14
    heeexy  
       2018-07-11 17:51:38 +08:00
    除了 heap 的 32G , 剩下的内存也会被 file cache 用上的 ,没有被浪费
    追求性能的话就不要再装别的了
    heeexy
        15
    heeexy  
       2018-07-11 17:53:10 +08:00
    当然 目前这个数据量确实很小 用啥工具 怎么玩应该都不会有压力的
    noNOno
        16
    noNOno  
       2018-07-11 17:54:28 +08:00
    @mdos 传播快乐,yxswl
    pynix
        17
    pynix  
       2018-07-11 18:16:15 +08:00
    肯定选内存型。。。
    blueskea
        18
    blueskea  
       2018-07-11 18:26:24 +08:00 via Android
    记得在哪看过,ES 单节点内存分配超过 32G 没有太大意义
    haoba
        19
    haoba  
       2018-07-11 18:36:16 +08:00
    主要看字段 mapping 的类型吧,如果需要全放内存的话,就指成 fielddata,这个是在 jvm heap 里面的。
    doc_values 是在磁盘内读的,不必放在 heap 里面,所以太大的内存是没有必要的,doc_values 是默认开启的。留出合适的内存给操作系统做 buffer 会性能更好一些。
    haoba
        20
    haoba  
       2018-07-11 18:42:59 +08:00
    太大的 jvm 内存,GC 时间一样会变长,没必要。
    ShineSmile
        21
    ShineSmile  
       2018-07-11 18:58:16 +08:00
    建议把虚拟内存对性能的拖慢考虑进去
    wayslog
        22
    wayslog  
       2018-07-11 20:02:04 +08:00
    这还用问么。。。。肯定是大内存+SSD 呀 /滑稽
    msg7086
        23
    msg7086  
       2018-07-12 02:29:59 +08:00
    10G 数据的话,16G 内存应该够了吧,再配 SSD 挺好的。
    说句实话,这两个配置跑起来差不多,都很快。
    大内存配机械盘也 OK。
    当然最理想肯定了是 32G+SSD 了。
    wwhc
        24
    wwhc  
       2018-07-12 05:50:25 +08:00
    选 SSD + 16G ZRAM
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1302 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 17:03 PVG 01:03 LAX 09:03 JFK 12:03
    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