SolrCloud環境の保守運用
検索エンジンは複雑なシステムのため、その挙動を正確に予測することは困難です。
SolrCloudを利用した検索エンジンの運用を長期にわたり継続するには、定期的なメンテナンスが必要であり、一般的なトラブルとその対処について記載します。
検索インデックスの肥大化
ディスク容量をモニタリングして空き容量が逼迫しないように備えてください。
検索エンジンのインデックスデータのサイズは徐々に増大して大きなディスク領域を占めるようになります。
文書の新規追加に限らず、更新時においても当該文書の旧コンテンツエントリは論理削除となり、新コンテンツがインデックスに追加されるためインデックスサイズは増大します。
検索インデックスは複数の「セグメント」に分割されて管理され、一定サイズまで大きくなったセグメントがマージされるタイミングで、論理削除されたレコードの占有していたディスク領域が解放されます。
ディスク容量の増加によるシステムハングアップを抑制する有効な対策として以下を定期的に実施してください。
ディスク空き容量の確保
インデックスサイズは徐々に増加していきます。その増加スピードは単調一定ではなく、突然に100GB単位でディスク使用量が増えることもあります。
大きくなったセグメントがマージされる際には、最大でインデックス容量の3倍程度までディスク容量が消費されることがあります。
検索エンジンのヒープメモリの確保
インデックスサイズが大きくなるにつれて、検索エンジン(Solr)が要求するメモリ容量も大きくなります。
検索エンジンのヒープメモリの使用率をモニタリングして、高い使用率が続くようであればヒープメモリを増加することが効果的です。
検索あるいはインデックス更新処理でエラーが発生し、ログ(solr.log)にOutOfMemoryexception
が記録されるようになったらヒープメモリの不足状態です。
検索エンジンの再起動
Fb5Solrサービスを再起動してください。
ディスク容量の逼迫とインデックスサイズの増大が重なるとハングアップを引き起こします。
検索エンジンを再起動することで論理削除によりディスク容量を占めていた旧コンテンツエントリが解放され、インデックスサイズが小さくなることが期待されます。
検索エンジンの定期再起動
1~6ヶ月に1回程度の頻度で検索エンジンの再起動を実施することをおすすめします。
検索エンジンの再起動はヒープメモリ不足とインデックスサイズ肥大化を予防します。定期実行タスクにて[Solrサービス再起動]をスケジュールできます。
インデックスの初期化と再構築
SolrCloud環境では、インデックスデータはコレクション別のフォルダに分かれて保存されます。更新頻度の高いドキュメントルートフォルダに対応するコレクションは早く肥大化する傾向があります。
肥大化したインデックスサイズを早急に縮小させるには、コレクションを初期化してインデックス再構築するのが有効です。
インデックス肥大化が著しいドキュメントルートについては数年に一度、コレクションの初期化を実行することが有効かもしれません。(ディスク容量に余裕があれば実行しなくても問題はありません)