Dgraph内部データベースの世代ファイルをマージするために、次のLinux ulimitを設定することをお薦めします。
| パラメータ | 設定 |
|---|---|
| -v, -m | 無制限。-vオプションの場合、プロセスが使用できる仮想メモリーの最大量に制限を設定しません。-mオプションの場合、最大常駐セット・サイズに制限を設定しません。これは、DgraphがDgraph内部データベースの世代ファイルをマージする際の問題を回避するために役立ちます。 |
| -n | 65536。オープン・ファイル記述子の最大数が64Kに設定されますが、これは、DgraphとHadoopが同じノードで実行されている場合は特に重要です。このパラメータはインストール時に設定されている必要があります。 |
| -u | ソフト制限は65536、およびハード制限は無制限。これは、実質的にはプロセスの最大数に制限を設定しません。このパラメータはインストール時に設定されている必要があります。 |
ERROR 04/03/15 05:24:35.668 UTC (1364966675668) DGRAPH {dgraph} BackgroundMergeTask:
exception thrown: Can't parse generation file, caused by I/O Exception: While mapping file,
caused by mmap failure: Cannot allocate memory
この場合、問題の原因は、Dgraphがデータベースのマージ・タスクに対して十分な仮想メモリーを割り当てられないことです。