ElasticSearch Tune for indexing speed Translation

  • 时间:
  • 浏览:0
  • 来源:大发快3APP下载—大发时时彩登录地址

9.索引缓冲区大小

1.使用块查询

将会我要我 一次性进行极少量的数据加载操作,你应该通过设置index.refresh_interval为-1并设置index.number_of_replicas为0.这会要我的索引暂时占据 危险之中,将会丢失任何分片后该 使数据丢失,否则同时也会意味着着索引调慢将会文档只会被索引一次。一旦初始化加载并且开使 ,应该把上面一另另四个参数设置为假若的值

8.使用调慢的硬件

6.给文件系统缓存留有足够的内存空间

默认10%足够了,相似:将会你给JVM10G的内存,它会给索引缓存区1G,这将对于一另另四个高负荷分片提供足够的内存空间。

将会索引带宽被I/O制约,你还要提供为文件系统缓存提供更多的内存将会升级调慢的硬件设备了。一般固态比机械硬盘性能更好。始终使用本地文件系统,远程文件系统像NFS以及SMB都应该正确处理。对相似亚马逊的EBS(elastic block storage)也要留意,es在虚拟存储上表现更好,将会调慢以及易于安装使得它变得如此受欢迎。否则不幸的是相比于本地存储虚拟存储还是有可是我差距。将会我要我 使用EBS请注意要使用提供的IOPS否则会被限流

_field_names字段会带来额外的索引开销,可是我将会你后该运行esists查询就都能否禁用它

10.禁用_field_names

文件系统的缓存会被使用到将会还要缓冲I/O操作。你应当确保运行es的机器还有一般的内存留给文件系统用作缓存

跟选择最佳bulk请求数量相似,如此通过测试并能知道最佳的调用者数量是几个。这都能否通过增加调用者数量来测试并在I/O或CPU饱和的状况下得到结果

确保操作系统后该将会禁用交换机制来交换java程序

3.提高刷新间隔

使用单个程序不将会将es集群的索引性能最大化。为了充分利用es集群的资源,你应该使用程序或程序发送数据。除了最大化集群的资源使用,这也会帮助减少非同步的成本。

5.禁用交换机制

4.在进行初始加载的完后 禁用索引刷新和索引复制

2.使用程序发送数据到es中

通过配置RAID为一另另四个空数组,都能否让索引分配在多个SSD上,否则要注意它会增加故障风向将会任意一另另四个SSD故障后该 意味着着索引损坏。然而这通常是一另另四个正确的做法:优化单个分片以获得最大性能,否则在不同的节点上换成副本分片以提高可用性。你也都能否使用snapshot和restore备份索引来获得进一步的保险

注意TOO_MANY_REQUESTS(429)返回码(在java客户端中报EsRejectedExecutionException错误),这是告诉你es目前无法跟上你的索引带宽。当你你你是什么状况占据 时,你应该在下次发送请求完后 先暂停下。理想状况下,它会自动恢复。

  块查询一般来说比单文档查询表现出更好的性能。为了获取快查询最佳新能,要我在单节点地单分片上运行一另另四个基准,第一次50个文档,第二次50个文档,否则50个,以此类推。每次基准运行的数量后该 两倍于前一次的数量。当索引带宽达到峰值的完后 你就知道你的数据索引最佳的块文档数量。将会峰值占据 于一另另四个数量上,最好还是以相当于的数量去索引。块查询数量越大也就意味着着在进行同步查询的完后 对内存压力也就越大。建议朋友每次发送请求时未必超过几十兆尽管有时更大的请求表现地更好。

将会你的节点只做高负荷的索引,确保indices.memory.index_buffer_size大到足以为每个分片提供最多512MB的索引缓冲区进行极少量索引(超过512MB索引性能假若会得到显著的提升)。es会采用你你你是什么配置(java堆的百分比将会绝对值),否则使用它在所有活跃的分片中作为公用缓冲区。非常活跃的分片自然会使用更多的缓冲区空间而那些轻量级查询的分片用得更少。

7.使用自动生成的ids

默认状况下,index.refresh_interval是1s,意味着着es会每秒创建一另另四个新的分片,但有你在身边都能否通过增加你你你是什么值(相似50s)来增大在每个刷新间隔中创建更多的分片并并能减少未来合并的压力

当索引一另另四个有具体id的文档时,es还要检查同一分片中是否占据 匹配到该id的文档,这会花费可是我时间否则在id越大的完后 成本越高。通过使用自动生成的id,es会调过那些检查,这将会使得索引变得更加快速