大量の REINDEXCOLLECTION リクエストの後に発生する可能性のある OOM(メモリ不足)リスク | KandaSearch Community Support Forum

大量の REINDEXCOLLECTION リクエストの後に発生する可能性のある OOM(メモリ不足)リスク

トピック作成者:ks-solruserml-bot (2025/07/17 11:18 投稿)
2
OpenOpen

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

こんにちは、皆さん。

私たちは Kubernetes 上で公式の Solr Operator 0.9.1 を使って Solr 9.8.1 を運用しています。

多くの非同期 REINDEXCOLLECTION リクエストを実行した後、RAM の使用量が大幅に増加する現象が発生しています。これ自体は驚くことではなく、また問題とも考えていませんが、リクエストが正常に完了した後もメモリ使用量が一定のままで減少しません。SolrCloud デプロイメントを手動で再起動するとこの問題は常に解消されるため、私としては、割り当てられたメモリブロックが正しく解放されていないか、あるいは解放自体は正しく行われているが、リクエスト完了後にヒープが断片化されすぎているのではないかと思っています。

実際、過去に何度か REINDEXCOLLECTION リクエストを繰り返し実行してヒープの割り当てが増え続けた際に、Pod を再起動しなかったために OOM(メモリ不足)クラッシュが発生しました。この場合、REINDEXCOLLECTION の非同期リクエストは中断され、手動での対応が必要となりました。

この RAM 割り当ての挙動は簡単に再現できますが、'jcmd' や 'jmap' を使って JVM のメモリダンプを作成する方法を調べたところ、現在の Solr Pod にインストールされているツールではヒープダンプの作成は簡単にはできないようです。ただ、私は Solr や Java エコシステムの専門家というわけではないので、もし Solr の開発チームが上記の RAM 使用量問題の原因を追跡できるようなメモリダンプを作成するための方法をご存知でしたら、ぜひご教示ください。

どうぞよろしくお願いいたします。
Florian Schieder

返信投稿者:ks-solruserml-bot (2025/07/17 11:18 投稿)

Florianさん、こんにちは。

REINDEXCOLLECTION のコードパスによってメモリリークが発生するという報告はこれまで聞いたことがありませんが、そうしたリークが起きる可能性は常にあります。もしヒープダンプを取得できるのであれば、ぜひその内容を見てみたいです!

一般的に(私の知る限りでは)、ヒープダンプを「オンデマンド」で作成する方法は jcmdjmap を使うことです。Solr の Pod にそれらがインストールされていない場合は、kubectl cp を使ってそれらの実行ファイルを Pod 内にコピーしてから実行し、ダンプを生成することができるかもしれません。それがうまくいかない場合、もう一つの選択肢としておすすめなのは、Solr を次の JVM フラグ付きで起動するように設定しておくことです:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<ファイルまたはディレクトリのパス>

これにより、OOM(OutOfMemoryError)が発生した際に自動的にヒープダンプが生成されます。その際、ダンプの保存先パスが永続的なストレージになっていることを確認してください。そうしないと、Pod の再起動時にダンプが消えてしまいます。

少しでも参考になれば幸いです。何か発見があれば、ぜひ教えてください!

よろしくお願いします。
Jason

返信投稿者:ks-solruserml-bot (2025/07/17 11:18 投稿)

このような目的のために、公式の Docker イメージには jattach を提供しています:
https://solr.apache.org/guide/solr/latest/deployment-guide/solr-in-docker.html#debugging-with-jattach

Jan

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

KandaSearch

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

投稿の削除

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