ES DataNode的写入是用标准的线程池模型是,提供一批active线程,我们一般配置为跟cpu个数相同。然后会有一个write queue,我们配置为1000。DataNode接收BulkShardRequest请求,先将请求放入write queue,然后active线程有空隙的,就会从queue中获取BulkShardRequest请求。这种模型下,当写入active线程繁忙的时候,queue中会堆积大量的请求。这些请求在等待执行,而从ClientNode角度看,就是BulkShardRequest请求的耗时变长了。下面日志记录了action的slowlog,其中waitTime就是请求等待执行的时间,可以看到等待时间超过了200ms。