[groonga-dev,01397] Re: mroongaのメモリ解放方法について

Back to archive index

Kouhei Sutou kou****@clear*****
2013年 5月 16日 (木) 15:48:09 JST


須藤です。

あまり伝わりあえていない感じがするので整理しますね。

現状:
  (1) SQLを実行すると数十分くらい応答がないときがある
      * 実行時間は長いが、実行結果は正常
  (2) MySQLがクラッシュするときがある

磯部さん:
  * (1)の原因はmroongaがメモリーを開放しないことが原因ではな
    いかと考えている。
    * そのため、mroongaがメモリーを開放する方法を模索している
  * 「メモリーを開放」とはmroongaがOSにメモリーを返すことに
    加えてページキャッシュもクリアすることの2つを表現してい
    る。
  * (2)をどのくらいの問題と認識しているかはわからない
    (自動で再起動されるためあまり問題ではない)
  * 須藤が「異常」と表現していることは「検索結果がおかしい」
    ということだと考えている。

須藤:
  * mroongaはメモリーを開放していると考えている。
    * 「mroongaがメモリーを開放している」とはmroongaがOSにメ
      モリーを返していることだけを表現している。
    * もしかしたらFLUSH TABLES;で開放していない可能性はある
      かもしれないが、mysqldを終了したら確実に開放していると考え
      ている。
  * (1)の原因は一度に扱おうとするデータが今のマシンスペックに対して大
    きすぎるのが原因ではないかと考えている。
    * 対策: 一度に扱うデータを減らしてはどうか
      * 今のやり方でどのくらいなら一度に扱っても大丈夫か調べ
        てはどうか
      * 今のやり方ではクリーンな状態でもリソースが足りないな
        らやり方を変えるといいのではないか
    * リソース不足ならmroongaが期待通りに動かなくてもしょう
      がないと考えている。
  * (1)の原因とページキャッシュは関係がないと考えている。
    * もし、ページキャッシュ周りで攻めるなら
      ページキャッシュの対策をする前にページキャッシュあり・
      なしで問題(検索時間が長くなる)が発生するかどうかを確
      かめた方がよいと考えている。
      * 例えば、ページキャッシュあり・なしの状態で
        同じSQLを実行してみる。
  * (2)はリソースが足りなくなったためだと考えている。
    参照しかしていないためデータベースが壊れることもない。
    なので、しょうがないと思っている。
  * 「異常」と表現していたのは「検索結果がおかしい」という意
    味ではなく「検索時間が長すぎる」ということである。

In <51931****@rozet*****>
  "[groonga-dev,01394] Re: mroongaのメモリ解放方法について" on Wed, 15 May 2013 14:39:23 +0900,
  磯部 和広 <k-iso****@rozet*****> wrote:

> これであれば、mroongaではなく、rronngaやgroonga-httpdとの
> 通信で何とかなりそうです。
> 
> その場合でも、同様にメモリが解放されない場合が予想されます。
> 
> その際には
> http://groonga.org/ja/docs/reference/commands/shutdown.html
> した後で
> http://groonga.org/ja/docs/reference/executables/groonga.html
> で起動し直し
> という流れになるかと思います。
> 
> 質問1. この認識(強制解放手順)は正しいでしょうか

「メモリが解放されない」がプロセスがOSにメモリーを返すだけで
はなく、ページキャッシュもクリアするまで含んでいるのであれば、
正しくありません。

「メモリが解放されない」がプロセスがOSにメモリーを返すだけを
示しているのなら正しいです。

> 質問2. もし正しければ、mroongaに応用は不可能でしょうか

「メモリが解放されない」がプロセスがOSにメモリーを返すだけで
はなく、ページキャッシュもクリアするまで含んでいるのであれば、
不可能です。

「メモリが解放されない」がプロセスがOSにメモリーを返すだけを
示しているのなら可能です。mysqldを終了してください。

-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)

groongaサポート:
  http://groonga.org/ja/support/
パッチ採用はじめました:
  http://www.clear-code.com/recruitment/
コミットへのコメントサービスはじめました:
  http://www.clear-code.com/services/commit-comment.html




groonga-dev メーリングリストの案内
Back to archive index