# groonga - オープンソースのカラムストア機能付き全文検索エンジン

- English page

### ナビゲーション

- 索引
- 次へ |
- 前へ |
- Groonga v4.0.2-145-gc632eedドキュメント »
- 11. トラブルシューティング »

# 11.2. mmap Cannot allocate memoryエラーを回避するには

## 11.2.1. 例

ログファイルに以下のようなmmapエラーが存在する場合があります。:

> 2013-06-04 08:19:34.835218|A|4e86e700|mmap(4194304,551,432017408)=Cannot allocate memory <13036498944>

<13036498944> はこの場合mmapの合計サイズ(約12GB)です。

## 11.2.2. 対策方法

以下の観点を確認する必要があります。

- 十分なメモリの空きが存在するか？

- マッピング最大数を超過していないか？

十分な空きメモリがあるかを調べるために、vmstat コマンドを使うことができます。

最大マッピング数を超過しているかどうかを確認するために、 vm.max_map_count の値を調べることができます。

もしこの問題が vm.max_map_count の値を調整することで解決するなら、これが原因です。

groongaはメモリを256KBごとに確保するので、扱えるデータベースのサイズを以下の式で見積ることができます:

> (database size) = vm.max_map_count * (memory chunks)

16GBを超えるデータベースを扱うには、少くとも65536を vm.max_map_count の値として設定しないといけません。

> database size (16GB) = vm.max_map_count (65536) * memory chunks (256KB)

sudo sysctl -w vm.max_map_count=65536 で一時的に vm.max_map_count を調整することができます。

Then save the configuration value to `/etc/sysctl.conf` or `/etc/sysctl.d/*.conf`.

チューニング関連のパラメータについては、 Tuning のドキュメントを参照してください。

### ナビゲーション

- 索引
- 次へ |
- 前へ |
- Groonga v4.0.2-145-gc632eedドキュメント »
- 11. トラブルシューティング »