AWS Elasticsearch 纵向扩展
AWS Elasticsearch scale up
我正在使用 AWS Elasticsearch Service,我收到了很多 es_rejected_execution_exception
。
根据他们的意见docs,我们应该提高应用程序的索引性能,添加更多节点或切换到更大的实例类型。
如果我竭尽全力改进我的应用程序,添加更多节点或切换到大型实例类型哪个更好?
首先也是最重要的一点是,es_rejected_execution_exception
是所有 threadpools in ES 的通用异常,只要他们的队列容量超过此异常就会抛出,AWS 文档给出了 [=11= 的示例] 队列,在异常后的简短描述中提到 es_rejected_execution_exception[bulk]
注意 bulk
。
请注意 ES 中有很多线程池,但最重要和最常用的是搜索和写入(在最新版本中,批量调用也使用写入队列)并且 你需要仔细查看异常消息以查看哪个队列已耗尽,以便您了解需要优化的内容.
增加队列大小是一个有争议的话题,但是如果你有一个瞬间爆发的请求,你可以增加队列大小,这在 AWS ES 中也是不可能的:(
你总是可以增加硬件,但你应该找到根本原因,修复它们并优化你的索引和搜索操作,以便它使用更少的硬件并节省 $$$,请参考我的简短提示 improve search and index performance
我正在使用 AWS Elasticsearch Service,我收到了很多 es_rejected_execution_exception
。
根据他们的意见docs,我们应该提高应用程序的索引性能,添加更多节点或切换到更大的实例类型。
如果我竭尽全力改进我的应用程序,添加更多节点或切换到大型实例类型哪个更好?
首先也是最重要的一点是,es_rejected_execution_exception
是所有 threadpools in ES 的通用异常,只要他们的队列容量超过此异常就会抛出,AWS 文档给出了 [=11= 的示例] 队列,在异常后的简短描述中提到 es_rejected_execution_exception[bulk]
注意 bulk
。
请注意 ES 中有很多线程池,但最重要和最常用的是搜索和写入(在最新版本中,批量调用也使用写入队列)并且 你需要仔细查看异常消息以查看哪个队列已耗尽,以便您了解需要优化的内容.
增加队列大小是一个有争议的话题,但是如果你有一个瞬间爆发的请求,你可以增加队列大小,这在 AWS ES 中也是不可能的:(
你总是可以增加硬件,但你应该找到根本原因,修复它们并优化你的索引和搜索操作,以便它使用更少的硬件并节省 $$$,请参考我的简短提示 improve search and index performance