"15926 Insufficient free space for journals"

最近Dockerを使用してEC2上に並列テスト環境構築みたいなことをしていて、EC2(t2.small)上にMongoDBを3台ほど立てようとした時に15926 Insufficient free space for journalsというエラーが発生しました。

mongodb - Why getting error mongod dead but subsys locked and Insufficient free space for journal files on Linux? - Stack Overflow

起動時にJournaling用に確保しているディスク容量が足りないということ。
EC2はデフォルトで8GBしかディスクがないので立ち上げの時に容量を確保できなかったために発生しているようでした。

対策

対策はEBSのサイズを大きくしても良いですが、上のStackoverflowにも書いてあるようにsmallFilestrueに設定すること。これでJournalのサイズを抑えることができるそうです。

設定

設定方法は立ち上げ方によって違います。
普通にMongoDBをインストールして起動している場合は/etc/mongo.confを編集する。

smallFiles: true

Configuration File Options — MongoDB Manual 3.0

--

Dockerで起動している場合は起動コマンドにオプションをつける。

docker run -d -p 27017:27017 --name my-mongo mongo mongod --smallfiles

mongod — MongoDB Manual 3.0

--

docker-composeを使用している場合はdocker-compose.ymlにて起動コマンドを上書きする。

mongo:
  image: mongo
  command: mongod --smallfiles