使用SSD配置elasticsearch以获得高性能

时间:2015-02-09 12:08:19

标签: elasticsearch google-compute-engine

在将弹性搜索群集从HDD移动到SSD磁盘之前,我决定比较这些解决方案的性能。结果对我来说绝对是意料之外的:使用hdd的elasticsearch(ES)比使用ssd的ES的工作速度快一点 我想我错过了一些重要的配置。

我是如何测试的

所有测试均在Google Compute Engine虚拟机上运行。

使用了两台机器(标记为S和H):

  • 两者都是带有debian7的n1-standard1(1 cpu,4G内存);
  • 机器S有10G SSD磁盘;
  • 机器H有10G硬盘。

简单的python脚本将请求发送到一台计算机,并保存每20秒的平均延迟统计数据。索引和查询的统计信息将单独保存。搜索请求和索引数据是随机生成的,但具有相同的参数。生成的文档具有相同的属性,具有相同数量的ascii符号。明显地放置了文档类型的映射。脚本在10个线程中发送请求3小时。

根据Elasticsearch官方网站上的文章中的建议,ES上的ES有一个非默认配置:

index.merge.scheduler.max_thread_count: 1

(它允许仅在单线程中将索引数据合并到磁盘上)

和S上的ES有另一种非默认配置:

index.store.throttle.type: none

(禁用每秒可以合并到磁盘的数据的任何限制)

结果

我预计SSD会明显快于HDD 但查询结果如下:
https://www.dropbox.com/s/d9xx2ed36wxqxko/Querying.png?dl=0
对于索引:
https://www.dropbox.com/s/djhaor4fzig82eh/Indexing.png?dl=0
(不幸的是我是stackoverflow的新手,我的声誉不允许我发布图片)

图表显示,就我而言,硬盘上的ES比SSD上的ES工作速度快一点。

部分是因为我使用了远程SSD。但HDD也很遥远。谷歌的文档说远程SSD有时比硬盘快。

在计算引擎上比较持久性SSD和HDD:
cloud.google.com/compute/docs/disks/#comparison_of_disk_types


我可以解释一下我做错了什么吗?应该设置哪些elasticsearch配置才能使用完整的SSD性能?

0 个答案:

没有答案