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