ElasticSearch Tune for indexing speed Translation

  • 时间:
  • 浏览:1
  • 来源:大发5分快乐8APP下载_大发5分快乐8APP官方

确保操作系统不必可能性禁用交换机制来交换java多多进程

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

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

默认请况下,index.refresh_interval是1s,是因为es会每秒创建另有十个 新的分片,但遇见让他通过增加有两种值(类似于于100s)来增大在每个刷新间隔中创建更多的分片并还可以减少未来合并的压力

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

5.禁用交换机制

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

注意TOO_MANY_REQUESTS(429)返回码(在java客户端中报EsRejectedExecutionException错误),这是告诉你es目前无法跟上你的索引效率。当有两种请况处在时,你应该在下次发送请求然后先暂停下。理想请况下,它会自动恢复。

当索引另有十个 有具体id的文档时,es还可以检查同一分片中算是处在匹配到该id的文档,这会花费你什儿 你什儿 时间否则在id越大的然后成本越高。通过使用自动生成的id,es会调过哪此检查,这可能性使得索引变得更加快速

10.禁用_field_names

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

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

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

跟选折 最佳bulk请求数量类似于于,还可以还可以 通过测试还可以知道最佳的调用者数量是哪十几个 。这还可以通过增加调用者数量来测试并在I/O或CPU饱和的请况下得到结果

  块查询一般来说比单文档查询表现出更好的性能。为了获取快查询最佳新能,让他在单节点地单分片上运行另有十个 基准,第一次100个文档,第二次100个文档,否则100个,以此类推。每次基准运行的数量全是两倍于前一次的数量。当索引效率达到峰值的就我让你就知道你的数据索引最佳的块文档数量。可能性峰值处在于另有十个 数量上,最好还是以合适的数量去索引。块查询数量越大也就是因为在进行同步查询的然后对内存压力也就越大。建议没如此 人 儿每次发送请求时不多超过几十兆尽管有时更大的请求表现地更好。

8.使用变慢的硬件

7.使用自动生成的ids

3.提高刷新间隔

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

4.在进行初始加载的然后禁用索引刷新和索引克隆qq

9.索引缓冲区大小

_field_names字段会带来额外的索引开销,你什儿 你什儿 可能性你不必运行esists查询就还可以禁用它

1.使用块查询

可能性我还可以一次性进行少许的数据加载操作,你应该通过设置index.refresh_interval为-1并设置index.number_of_replicas为0.这会让他的索引暂时处在危险之中,可能性丢失任何分片全是使数据丢失,否则一齐也会是因为索引变慢可能性文档只会被索引一次。一旦初始化加载开始英语 英语 英语 ,应该把里面另有十个 参数设置为那我 的值