5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

全文検索エンジンGroongaAdvent Calendar 2013

Day 9

Mroonga (Groonga)のメモリリークを簡単に確認するには

Posted at

はじめに

MySQLで高速に全文検索するためのオープンソースのストレージエンジンとしてMroonga (むるんが)を公開しています。
最新のバージョンは2013年11月29日にリリースした3.10です。

今回は、Mroonga(もしくはGroonga)のメモリリークが疑わしいときに確認する方法を紹介します。

最近のメモリリークの話題

去年の4/29にリリースしたMroonga 2.02から1ヶ月ちょい前の10/29にリリースしたMroonga 3.09まで、全文検索をする(MATCH AGAINSTを使う)たびに336バイトずつメモリリークするバグがあるということが明かになりました。

これ実はメモリリークしてない?と思ったときに簡単に確認する方法があると良いですね、ということになるわけですが、実はすでに用意されています。

メモリリークを確認しよう

Mroongaの場合

Mroongaの場合、mroonga_command("status")を実行して、alloc_countの値を確認しましょう。
それが際限なく増えていくと Mroonga または Groonga に メモリーリークの疑いがあります。

SELECT mroonga_command("status");
mysql> SELECT mroonga_command('status');
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| mroonga_command('status')                                                                                                                                                             |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| {"alloc_count":573,"starttime":1386574922,"uptime":8322,"version":"3.1.0","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2} |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.10 sec)

Groongaの場合

Groongaの場合はstatusコマンドを実行します。

GroongaのHTTPサーバ機能を使っているなら、http://サーバーIP:10041/d/statusにアクセスすることでも確認できます。

curl http://localhost:10041/d/status    

次のような結果が得られます。同じようにalloc_countを確認しましょう。

[[0,1386583179.92117,0.110098361968994],{"alloc_count":149,"starttime":1386574937,"uptime":8243,"version":"3.1.0","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}]

メモリリークを確認できたら?

メモリリークについてメーリングリスト groonga-dev@lists.sourceforge.jp まで報告してもらえると、不具合修正をしてMroonga (もしくはGroonga)を安心して使えるように改善していけるので嬉しいです。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?