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

2018-07-11 08:50:11 +08:00
 Reign

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

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

这两者选哪个比较好?

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

5425 次点击
所在节点    程序员
24 条回复
heeexy
2018-07-11 09:00:15 +08:00
Reign
2018-07-11 09:44:44 +08:00
@heeexy 谢谢,我看过,就是不知道对于我这种读远大于写的场景,到底内存和 SSD 哪个重要?
xuminzhong
2018-07-11 09:56:48 +08:00
读大于写,内存重要,因为第一次读取后,如果内存有空闲的,OS 会一直缓存在内存里。
ytmsdy
2018-07-11 10:01:17 +08:00
内存有 64g,就算把 10g 的数据全部加载到内存里也放的下啊
yuqaf
2018-07-11 10:01:25 +08:00
这么点数据,mysql 都足够了。。。
heeexy
2018-07-11 10:02:56 +08:00
内存,尤其是如果还要搞聚合查询的话

https://www.elastic.co/blog/a-heap-of-trouble
Reign
2018-07-11 10:06:29 +08:00
@ytmsdy ES 有没有一种模式可以让所有数据常驻内存
AntonChen
2018-07-11 10:53:30 +08:00
大内存,ES 就是玩内存的,只要是 open 状态的就会载入内存。个人建议单机 64G 内存,heap 配置一半
alvin666
2018-07-11 11:06:51 +08:00
@Reign 大不了开虚拟内存盘,怎么看都是第二个搭配划得来
crawl3r
2018-07-11 11:09:08 +08:00
就算是 10g, mysql+ssd 完全够用了。最近在搞 2T 数据,mysql 分片+ssd 完全够了
coolloves
2018-07-11 13:05:33 +08:00
这么点数据,选大内存啊
可以划 10G+的内存创建一块盘,然后 es 的 data 放过去
slixurd
2018-07-11 13:12:10 +08:00
mdos
2018-07-11 16:08:47 +08:00
哈哈哈哈,翻到这标题的时候我小弟坐在边上,直接就问我“ es 文件管理器搜索还要问别人的嘛?”我我我 xswl
heeexy
2018-07-11 17:51:38 +08:00
除了 heap 的 32G , 剩下的内存也会被 file cache 用上的 ,没有被浪费
追求性能的话就不要再装别的了
heeexy
2018-07-11 17:53:10 +08:00
当然 目前这个数据量确实很小 用啥工具 怎么玩应该都不会有压力的
noNOno
2018-07-11 17:54:28 +08:00
@mdos 传播快乐,yxswl
pynix
2018-07-11 18:16:15 +08:00
肯定选内存型。。。
blueskea
2018-07-11 18:26:24 +08:00
记得在哪看过,ES 单节点内存分配超过 32G 没有太大意义
haoba
2018-07-11 18:36:16 +08:00
主要看字段 mapping 的类型吧,如果需要全放内存的话,就指成 fielddata,这个是在 jvm heap 里面的。
doc_values 是在磁盘内读的,不必放在 heap 里面,所以太大的内存是没有必要的,doc_values 是默认开启的。留出合适的内存给操作系统做 buffer 会性能更好一些。
haoba
2018-07-11 18:42:59 +08:00
太大的 jvm 内存,GC 时间一样会变长,没必要。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/469784

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX