どうも、Tです。
FessのCPU使用率上限を変更してみた備忘録です。
目次
環境
Fess 15.1
# dnf list installed | grep fess fess.noarch 15.1.0-1 @@commandline
問題
Fessのクロールのスレッド数を増やしたり、大きなドキュメントのクロールが行われると/var/log/fess/fess-crawler.logに下記のような処理待ちを目撃する頻度が増えていきます。
INFO Cpu Load 87% is greater than 50%. 5 waiting thread(s).
これは、Fessの処理がCPUを食いつぶしてしまわないように、CPU使用率が50%を超えているとき処理待ちを行うようになっているためです。
検索処理が遅くなったりするのも困りますが、50%でクロール処理の待ちが発生してしまうのも困るので、CPUの使用率の制限をもう少し緩くしてみます。
設定
設定ファイルを編集します。
# vi /etc/fess/fess_config.properties
下記の50%の制限を90%までに変更します。
---修正前 adaptive.load.control=50 ---修正後 adaptive.load.control=70
CPUの余力をどれほど持たせておくかは悩ましい問題です。クロール処理をしながら、全文検索をしたり、他に動作しているサービスを考えると70%~80%程度にしておいた方が安全な気がします。また、Fessで大き目のドキュメントをクロールするとインデックス化する際に、OpenSearch側のCPU処理も高くなるため、90%などの高い数値は避けておいた方が無難と思われます。
設定を反映するためFessを再起動します。
# systemctl restart fess
参考
まとめ
この設定の対象となるのは、クロール・サムネイル生成・サジェスト生成ということなので、チューニングの際にどうしても上げる必要がある場合にしておいた方がいいのかもしれない…。