須藤です。 In <CAF1BLYEacMf8=q6kVhXBbXq2DKU1quEs503ik2pai1Z1_xyCEQ****@mail*****> "[groonga-dev,04966] Re: Mroongaのalloc_countの増加について、cache_limitの恒久設定方法" on Tue, 19 Apr 2022 18:25:31 +0900, Mitsuo Yoshida <y****@ceek*****> wrote: > alloc_count の増加については、どのようなものが正常でしょうか。 内部でmruby(アプリケーション組み込み用のRuby実装)を使って いる箇所があるのですが、そこの処理で増えた分についてはすぐに 減らなくても正常です。というのは、mrubyにはGCが組み込まれて いるためGCされるタイミングでまとめてalloc_countが減るからで す。なので、長い目で見て増加傾向になければ大丈夫です。 mrubyを使っていない箇所で増えている場合は問題です。確保して メモリーを開放できていないのでメモリーリークです。 > 私も、仮想メモリが増加し続け、クラッシュする問題に悩まされており、現状では日時の FLUSH TABLES でメモリを解放して回避しています。 おぉ。。。 そういう状況が発生したら詳細はおいおいでもよいのでとりあえず 共有してもらえると助かります。 > 手元の環境で、実行してみたところ、以下の結果でした。 > alloc_countが常に2または5増加しています。 ありがとうございます! これは非常に助かります! > 実行2: > → 実行の度に alloc_count が必ず5増加 > > SELECT > COUNT(*) > FROM > news_latest > WHERE MATCH(title,content) AGAINST('*D+ 次期衆院選' IN BOOLEAN MODE); このケースがMariaDB 10.5で再現したので直しました。 (吉田さんもMariaDB 10.5を使っていますか?) たぶん、他のケースも同じ原因だと思います。 Mroonga内にalloc_count4つ分開放もれがありました。 (メモリーリークです。) Groonga内のmrubyの処理のところでalloc_countが1つ増えていまし たが、これはいずれGCで開放されるやつなので問題ないやつです。 が、そもそも今回のケースではalloc_countが増えない実装にして おきました。 いつから発生していたかなんですが、なんと、Mroonga 11.03から 発生していました。一年弱前です。。。 残念ながら設定での回避策はありません。 来週のリリースを待ってアップグレードするか https://github.com/mroonga/mroonga/actions/runs/2205159346 のCIの成果物として再生されるパッケージでアップグレードするか、 定期的に再起動あるいはFLUSH TABLESするかが対策になります。