[groonga-dev,01666] Re: 仮想メモリサイズを超えるmroongaのインデックス構築について

Back to archive index

Kouhei Sutou kou****@clear*****
2013年 8月 23日 (金) 15:47:52 JST


須藤です。

In <CANM+Hhfqw9Q0PGdmzpSHzHkE8oKhO_0XE9u****@mail*****>
  "[groonga-dev,01661] 仮想メモリサイズを超えるmroongaのインデックス構築について" on Thu, 22 Aug 2013 15:59:20 +0900,
  Naoya Murakami <visio****@gmail*****> wrote:

> 
> このとき、仮想メモリサイズを超えるインデックスを作ろうとすると、
> mysqldがクラッシュします。
> 
> swapを大きくして、作成されるインデックスサイズよりも仮想メモリサイズを
> 大きくすることでmysqldがクラッシュすることを回避することができます。
> 
> しかしながら、事前にインデックスサイズを正確に見積もるのは難しく、
> あらかじめ、swapを大きくするのを忘れると、データが破壊されて悲しい
> 思いをします。
> 
> 仮想メモリサイズを超える場合には、データディレクトリ上に一時ファイル
> を作る等の挙動にしていただくことは可能でしょうか?
> こうすると、びくびくswapをでかめにとる必要がなくなるので、
> ご検討いただけるとうれしいです。

Linuxですよね?
もしかしたら、

  % sudo /sbin/sysctl vm.overcommit_memory=1

を実行するとswapを大きくしなくてもいけるかもしれません。

永続的に↑を設定する(OSを再起動しても有効なままにする)なら
/etc/sysctl.d/groonga.confとかいうファイルを作って(拡張子
が.confならファイル名はなんでもOKです)、以下の内容にしてく
ださい。

  vm.overcommit_memory = 1


あぁ、これについて、ドキュメントに書いていなかったんです
ね。。。groonga起動時のメッセージには出していたんですが。。。

ざっくりいうと大きなサイズのmmapをしても実際に使わなければエ
ラーにならないようにする設定です。Redisとかもこの設定を推奨
していたりします。

詳細は、後でドキュメントに書いておきたいですね。。。

-- 
須藤 功平 <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