Kouhei Sutou
kou****@clear*****
2013年 6月 5日 (水) 16:07:51 JST
須藤です。 In <51AEA****@rozet*****> "[groonga-dev,01467] Re: データDELETE,INSERT時のmmap Cannot allocate memoryについて" on Wed, 05 Jun 2013 11:42:07 +0900, 磯部 和広 <k-iso****@rozet*****> wrote: > ■ログに下記が出力されていた > > 2013-06-04 08:19:34.835218|A|4e86e700|mmap(4194304,551,432017408)=Cannot > allocate memory <13036498944> > > mmapでエラーが起き、メモリ割り当てに失敗したらしい > > ■manで調査 > > http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/mmap.2.html > > 「エラー」セクションを見ると、下記のエラーが該当しそうだ。 > ※他のエラーは、もしそれが起きるなら、もっと高い頻度で起きるだろう > > ENFILE > システム全体でオープンされているファイルの総数が上限に達した。 > ENOMEM > メモリに空きがない、または処理中のプロセスのマッピング数が最大数を超過した。 > > ■検証 > > 下記3点を調べれば良い > メモリの空き > オープンしているファイルの総数と、その上限 > 処理中のプロセスのマッピング数と、その上限 > > ■要望 > > エラーコードがログに出力されていれば、上記検証項目が減るので > 数値のままで良いのでエラーコードを出力して頂ければ・・・ > と思います。 実は、「Cannot allocate memory」の部分がstrerror(3)でerrnoの 値を文字列にしたものなんです。数値より文章の方がわかりやすい と思ってこうしています。あと、数値と定数の対応も環境によって 変わるので、だすならEXXという名前で出したほうが便利そうだなぁ と思いました。 -- 須藤 功平 <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