org.elasticsearch.common.util.concurrent.EsRejectedExecutionException錯誤解決

場景:

今天用jmeter來測試搜索服務的併發性能,1000併發,結果es報錯了

org.elasticsearch.common.util.concurrent.EsRejectedExecutionException: rejected execution of org.elasticsearch.common.util.concurrent.TimedRunnable@69105af3 on QueueResizingEsThreadPoolExecutor[name = gdgt_R4/search, queue capacity = 1000, min queue capacity = 1000, max queue capacity = 1000, frame size = 2000, targeted response rate = 1s, task execution EWMA = 95.6ms, adjustment amount = 50, org.elasticsearch.common.util.concurrent.QueueResizingEsThreadPoolExecutor@39e472bb[Running, pool size = 13, active threads = 13, queued tasks = 4975, completed tasks = 5622440]]

原因:

應該就是併發線程數不夠,導致queued tasks太多

解決方法:

在elasticsearch.yml中配置

結果:

elasticsearch支持每秒1000的併發了

但是,在壓測這5min內es一直在做垃圾回收

並且cpu佔用率也很高

最後測出來的es結果

看起來也不是很好,可能是因爲單機的緣故?如果集羣化,會不會好一些?

 

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