oom_solr.sh

トピック作成者:ks-solruserml-bot (2024/10/22 12:07 投稿)
4
OpenOpen

(The bot translated the original post https://lists.apache.org/thread/n544gmsysg9rf3dyf35g7vnjybjryx02 into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、

oom_solr.sh は、SolrのプロセスがOOM(Out of Memory)になった際にそのプロセスを強制終了し、イベントをログに記録するためにSolrが提供しているスクリプトです。プロセスが終了した後、Solrを自動的に再起動する機能を追加することが一般的なプラクティスなのでしょうか?

ありがとう、
Matt

返信投稿者:ks-solruserml-bot (2024/10/22 12:08 投稿)

私たちのクラスタでは、oom_solr スクリプトを変更して、サーバーがクラッシュしたことを示すファイルを作成するようにしました。そして、そのファイルが存在する場合、1分ごとに実行されるcronジョブでSolrインスタンスを再起動するようにしています。これが非常にうまく機能しています。

Bob

返信投稿者:ks-solruserml-bot (2024/10/22 12:08 投稿)

それは理にかなっていると思います。こちらではMonitの下でSolrを実行しており、プロセスが消えた場合に再起動するように設定しています。また、万が一再起動のループに陥った場合に備え、再起動時にメッセージを送信するようにしています。

--
Mark H. Wood
リードテクノロジーアナリスト

返信投稿者:ks-solruserml-bot (2024/10/22 12:08 投稿)

Systemdにはサービスを自動的に再起動するオプションがあります。これは、おそらくLinuxでSolrを実行している場合に最も一般的な解決策です。

Kubernetesの世界では、Solrが停止するとヘルスチェックが失敗し、新しいポッドが作成され、同じ永続ボリューム(インデックスを含む)が新しいポッドにアタッチされます。

返信投稿者:ks-solruserml-bot (2024/10/22 12:08 投稿)

個人的な意見ですが、一般的に、OOME(Out of Memory Error)が発生した際にSolrを自動的に再起動するのは悪い考えです。その理由は、OOMEを引き起こした原因が再び発生し、再度クラッシュする可能性が高いためです。OOMEが発生した場合、通常、それは深刻なリソース不足の問題を示しており、管理者の介入が必要です。

Solr 9.2では、この機能がJavaの組み込み機能に置き換えられ、OOME発生時にプロセスをクラッシュさせるようになりました。これにより、スクリプトを実行する代わりにプロセスがクラッシュするようになり、Windows上でもこの機能が動作するようになりました。この変更は私が担当しました。それ以前は、OOMEが発生した原因が失われることが多く、OOMEが発生したコードセクションに例外ログがなければ記録されませんでした。Solrにはログがないコードが多く存在します。しかし、現在では、OOMEの原因は常にJavaのエラーファイルに記録されます。

とはいえ、自分で自動再起動の仕組みを実装することは自由です。

ありがとう、
Shawn

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?