- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 8 节点集群(AWS 上的 8 个 r3.xlarge 使用实例附带的临时 80GB SSD 磁盘)。有一个主索引和两个主索引类型。它们之间存在父/子关系。有 7500 万 parent 和 1500 万 child 。 (我们定期清理 child ,但保留 parent )
为了加速 has_child 查询,我在 child 的父字段上使用了急切的全局序数。
使用急切的全局序号似乎会显着减慢刷新时间。刷新现在最多需要 3 秒。
我相信我可以通过增加机器上的 IO 来加快刷新速度。但是我可以使用任何其他设置来加快刷新速度吗?
我正在使用 elasticsearch 1.4.2。
请注意,当我使用 8 m3.xlarge 和 1 个 EBS 卷时,刷新速度更快。 (这没有意义,因为 EBS 卷的 IO 应该比临时磁盘慢...)
谢谢!
最佳答案
如果没有任何指标来指出可能存在争用的地方,这就很棘手。你真的受 IO 限制吗?还是受计算限制?我经常发现我是后者。这可能是您通过比较两个四核实例类型得出的结论,但是当您使用 r3 时,其他事情也可能发生了变化。
一些可能有帮助的事情:
移除合并限制,index.store.throttle.type: none
。有了 SSD,您就不需要它了,我们只是为了安全起见,所以索引不会占用一个盒子。您可以为每个索引设置它,但如果测试表明它有助于但不会减慢搜索速度,只需将它放入每个节点的配置中,或者在您创建索引时放入应用程序中。
如果您使用的是 Linux,请确保您的数据量的 IO 调度程序设置为 noop
,或者至少设置为 deadline
。 CFQ 应该在使用 SSD 时进行 DTRT,但我还没有发现这是真的。此外,在 EC2 上,您不需要带有虚拟化层的任何存储(理论上)的调度程序。请记住,除非您看到写入始终保持在 60mb/s 左右的上限,或者您受计算限制,否则这不会真正产生影响。
由于您没有在 m3 上使用预先加载,所以它真的是苹果和橘子。只是预感,但放缓可能会产生一定程度的链式 react ,段正在堆积,并且只有在索引流量中断时才会恢复。您可以尝试将 index.refresh_interval
增加到 5s
并查看手动刷新是否加快。这很容易通过 /_cat/segments/INDEX | 进行监控。 wc -l
.
您可以尝试增加 ES 允许 Lucene 使用的线程数。在四核上你可能没有太多空间(需要那些 CPU 图),但你可以做一些测试并检查它。 index.merge.scheduler.max_thread_count: 6
(在您的硬件上默认为 4)。
关于elasticsearch - 如何使用 eager global ordinals 加速刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28993691/
显然,可以实现 Haskell,使其在不改变语言语义的情况下急切地求值。如果这是真的,如何处理无限数据结构? http://csg.csail.mit.edu/pubs/haskell.html Th
有没有什么方法可以像@ManagedBean(eager=true ) 来自 javax.faces 包? @Named @ApplicationScoped public Mail() { ...
使用@ApplicationScoped @Named @Eager,我的@EJB注入(inject)的@Stateless bean未正确实例化并评估为空。 我有一个@ApplicationScop
我必须删除两个分隔符之间的字符串,即 从“123XabcX321”我想要“123321”。 对于一个简单的案例,我很好: $_=<>; s/X(.*)X//; print; 但是,如果像“123Xab
我有一个对象层次结构,订单,联系人,地址: public class Order { public virtual Contact BillingContact { get; set; }
Eager 模式仅支持 TF native 优化器我在以下尝试过的每个优化器中都会遇到此错误: def create_model(): model = tf.keras.models.Sequ
我有这样的数据设计:交易属于授权,而授权又属于客户。或者用结构体表示: type Transaction struct { shared.Transaction // transaction
我想在 Scheme 中做一个懒惰的列表。这是我到目前为止。 ;; Constructor for Pairs (define (cons-stream a b) (cons a (λ() b))
今天是个好日子 我是 Laravel 的新手,目前正在用它构建我的第一个简单的新闻应用程序 我有一个简单的查询,使用 laravel 的预先加载功能 但是在这个急切的加载功能中,我想根据某些条件获取某
我正在制作一个动态表单,让用户使用 vue.js 自动生成带有游戏统计信息的图像,并使用 Keen-ui。我是 vue.js 的新手,过去两周开始学习它。 现在,我在使用 eager-ui 进行选择下
我 fork 了 eager/dashboards github 存储库,并尝试创建一个 Dockerfile 以在 Docker 容器中运行仪表板。 我的 fork :https://github.
我的实体: @Entity @NoArgsConstructor public class Company { @Id @Getter @GeneratedValue(strategy =
在我的实体中,我必须使用 fetch = FetchType.EAGER 因为我有一个错误: nested exception is org.hibernate.LazyInitializationE
我在 Java 中使用 play 2.0.4。我正在尝试从 play 提供的内存数据库中保存和检索值(Ebean 是底层 JPA 实现)。下面是一些示例代码: @NoobDisclaimer ("I'
在 Pro .NET Performance - Optimize Your C# Applications 的第 96 页上,它谈到了 GC 急切根收集: For each local variab
我无法从数据库加载对象及其相对映射对象。可能我的“ map 系统”是错误的。 在数据库中保存对象(及其相对映射对象)时,一切正常,因此对象似乎已正确映射。 Utente是我的“主”对象 publ
我需要使用急切查询在 Laravel 中执行子查询,但结果始终为空。 查询: $project = Log::where('project_id', $id)->with(['log_occurenc
我有这个程序: var planetStream = require('../../'); var app = require('http').createServer(handler); var i
我需要与FetchType.EAGER(下面的示例)建立关系,但我有异常(exception)。如果我将 FetchType.EAGER 更改为 FetchType.LAZY 一切正常,但我确实需要
我正在使用 EF6 并尝试急切获取对象的整个结构。问题是我正在使用继承。 假设我有这个类(class)。 数据库上下文 DbSet A { get; set; } 示例类 public class A
我是一名优秀的程序员,十分优秀!