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