目前网站有 650 万行数据,数据库大小 8.1G ,后期可能会增至 10G 左右,目前选择服务器:
这两者选哪个比较好?
另外,ES 能不能像 Redis 一样,将所有索引数据全部存储在内存中,不是热数据是所有数据,这样的话,64G 完全能装得下 8.1G 的数据了,那肯定选择第二台服务器读写更快了
1
heeexy 2018-07-11 09:00:15 +08:00 2
|
3
xuminzhong 2018-07-11 09:56:48 +08:00
读大于写,内存重要,因为第一次读取后,如果内存有空闲的,OS 会一直缓存在内存里。
|
4
ytmsdy 2018-07-11 10:01:17 +08:00 via iPhone
内存有 64g,就算把 10g 的数据全部加载到内存里也放的下啊
|
5
yuqaf 2018-07-11 10:01:25 +08:00
这么点数据,mysql 都足够了。。。
|
6
heeexy 2018-07-11 10:02:56 +08:00
|
8
AntonChen 2018-07-11 10:53:30 +08:00 via Android
大内存,ES 就是玩内存的,只要是 open 状态的就会载入内存。个人建议单机 64G 内存,heap 配置一半
|
10
crawl3r 2018-07-11 11:09:08 +08:00
就算是 10g, mysql+ssd 完全够用了。最近在搞 2T 数据,mysql 分片+ssd 完全够了
|
11
coolloves 2018-07-11 13:05:33 +08:00
这么点数据,选大内存啊
可以划 10G+的内存创建一块盘,然后 es 的 data 放过去 |
12
slixurd 2018-07-11 13:12:10 +08:00
preloading 了解一下
https://www.elastic.co/guide/en/elasticsearch/reference/master/_pre_loading_data_into_the_file_system_cache.html 直接把文件加载到内存,避免磁盘 IO |
13
mdos 2018-07-11 16:08:47 +08:00 via Android
哈哈哈哈,翻到这标题的时候我小弟坐在边上,直接就问我“ es 文件管理器搜索还要问别人的嘛?”我我我 xswl
|
14
heeexy 2018-07-11 17:51:38 +08:00
除了 heap 的 32G , 剩下的内存也会被 file cache 用上的 ,没有被浪费
追求性能的话就不要再装别的了 |
15
heeexy 2018-07-11 17:53:10 +08:00
当然 目前这个数据量确实很小 用啥工具 怎么玩应该都不会有压力的
|
17
pynix 2018-07-11 18:16:15 +08:00
肯定选内存型。。。
|
18
blueskea 2018-07-11 18:26:24 +08:00 via Android
记得在哪看过,ES 单节点内存分配超过 32G 没有太大意义
|
19
haoba 2018-07-11 18:36:16 +08:00
主要看字段 mapping 的类型吧,如果需要全放内存的话,就指成 fielddata,这个是在 jvm heap 里面的。
doc_values 是在磁盘内读的,不必放在 heap 里面,所以太大的内存是没有必要的,doc_values 是默认开启的。留出合适的内存给操作系统做 buffer 会性能更好一些。 |
20
haoba 2018-07-11 18:42:59 +08:00
太大的 jvm 内存,GC 时间一样会变长,没必要。
|
21
ShineSmile 2018-07-11 18:58:16 +08:00
建议把虚拟内存对性能的拖慢考虑进去
|
22
wayslog 2018-07-11 20:02:04 +08:00
这还用问么。。。。肯定是大内存+SSD 呀 /滑稽
|
23
msg7086 2018-07-12 02:29:59 +08:00
10G 数据的话,16G 内存应该够了吧,再配 SSD 挺好的。
说句实话,这两个配置跑起来差不多,都很快。 大内存配机械盘也 OK。 当然最理想肯定了是 32G+SSD 了。 |
24
wwhc 2018-07-12 05:50:25 +08:00
选 SSD + 16G ZRAM
|