elasticsearch 是否有任何检查当前批量队列大小Opensearch?

cbwuti44  于 2023-02-03  发布在  ElasticSearch
关注(0)|答案(1)|浏览(153)

我的Opensearch在写数据时有时会遇到错误“429太多请求”。我知道有一个队列,当队列满了的时候它会显示那个错误。那么有没有API来检查批量队列的状态,当前的大小...?示例:队列150/200(接近满)

fnatzsnv

fnatzsnv1#

可以,您可以使用以下API调用

GET _cat/thread_pool?v

您将得到如下所示的内容,其中可以看到节点名、线程池名(查找write)、当前正在执行的活动请求数、队列中等待的请求数以及最后被拒绝的请求数。

node_name       name   active queue rejected
node01          search      0     0        0
node01          write       8     2        0

写入队列可以处理1 + number of CPUs个请求,即同时处于活动状态的请求数。如果活动队列已满且有新请求进入,则这些请求将直接进入队列(默认大小为10000)。如果活动队列已满且队列已满,则开始拒绝请求。
您的里程可能会有所不同,但在优化时,您需要考虑:

  • 在0时保持拒绝
  • 最小化队列中的请求数
  • 以确保活动请求被尽可能快地执行。

通常最好不要增加队列,而是增加CPU的数量。如果您有大量的接收管道,那么添加接收节点通常是一个好主意,这些节点的目标是执行该管道,而不是在数据节点上执行。

相关问题