いつもお世話になっております。
普段300-500/secで推移しているsearch rateが、
1000+/secで瞬間的に増えることがあり、
thread pool のsearch queueが上限に達してしまうことがありました。
queueの上限を増やすことで対応もしましたが、
それはそれで増やした上限にも達してしまい、
CPUへの負荷が高くなってしまうことが起きてます。
急激に増えるsearchクエリの数は物の作りとして調整できますが、
一回溜まってしまったqueueはなかなか数的に減ってくれません。
その中ではクライアント側でのタイムアウト設定などで既に意味のないクエリもあると思うので、
queueが溜まった時に一気にクリアできる方法があれば、
ダウンタイムなしで運用できると思いますが方法はありますでしょうか?
nodeのrolling restart的なやり方だとqueueは減らないので、
今は瞬間的にすべてのnodeを落として消してます。
もしqueueのクリアができる方法がありましたら、ご教授お願いします。
また、
そもそも溜めない方法として、(もちろん短時間に大量のクエリを投げない、というのと)
thread poolのsizeの設定周りのチューニングによってある程度防げることは可能でしょうか?
CPUへの負荷もあるので、あんまりデフォルトから弄りたくないというのもありますが。
お手数ですが、
ご存知の方いらっしゃればご教授お願い致します。