分佈式搜索elasticsearch高級配置之(二)------線程池設置

一個Elasticsearch節點會有多個線程池,但重要的是下面四個:
索引(index):主要是索引數據和刪除數據操作(默認是cached類型)
搜索(search):主要是獲取,統計和搜索操作(默認是cached類型)
批量操作(bulk):主要是對索引的批量操作(默認是cached類型)
更新(refresh):主要是更新操作(默認是cached類型)

可以通過給設置一個參數來改變線程池的類型(type),例如,把索引的線程池改成blocking類型:

 

[java]
threadpool:   
  1.     index:   
  2.         type: blocking   
  3.         min: 1   
  4.         size: 30   
  5.         wait_time: 30s  

下面是三種可以設置的線程池的類型
cache
cache線程池是一個無限大小的線程池,如果有很請求的話都會創建很多線程,下面是個例子:

 

 

[java]
threadpool:   
  1.     index:   
  2.         type: cached  

fixed
fixed線程池保持固定個數的線程來處理請求隊列。
size參數設置線程的個數,默認設置是cpu核心數的5倍
queue_size可以控制待處理請求隊列的大小。默認是設置爲-1,意味着無限制。當一個請求到來但隊列滿了的時候,reject_policy參數可以控制它的行爲。默認是abort,會使那個請求失敗。設置成caller會使該請求在io線程中執行。

 

 

[java]
threadpool:   
  1.     index:   
  2.         type: fixed   
  3.         size: 30   
  4.         queue: 1000   
  5.         reject_policy: caller  

blocking
blocking線程池允許設置一個最小值(min,默認爲1)和線程池大小(size,默認爲cpu核心數的5倍)。它也有一個等待隊列,隊列的大小(queue_size )默認是1000,當這隊列滿了的時候。它會根據定好的等待時間(wait_time,默認是60秒)來調用io線程,如果沒有執行就會報錯。

 

 

[java]
threadpool:   
  1.     index:   
  2.         type: blocking   
  3.         min: 1   
  4.         size: 30   
  5.         wait_time: 30s  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章