/usr/local/mongodb/ 以下に構築する場合の設定周り
1. ディレクトリ構成
バイナリをDLして適当に配置してください。
# mkdir -p /usr/local/mongodb/conf
# mkdir -p /usr/local/mongodb/logs
# mkdir -p /usr/local/mongodb/tmp
# ln -s <path to data path> /usr/local/mongodb/data
# ln -s <path to bin path> /usr/local/mongodb/bin
2. Keyfileを作る
MongoDB3系からセキュリティ周りが厳しくなり、replica-setへJOINさせる際にkeyfileによる認証が必要になりました。
StandAloneの場合は不要です。
openssl rand -base64 741 > /usr/local/mongodb/conf/mongod.key
設定ファイルテンプレ
しっかり設定しなければならないのは以下の2点くらい
storage.wiredTiger.engineConfig.cacheSizeGB: 100
インデックス構築や、cursor処理、メモリリーク(orz...)でも消費されるので
現状ではメインメモリの80% 程度に調整しておいた方が良さそうです。
replication.oplogSizeMB: 102400
これは用途によって適当に。。
processManagement:
fork: true
pidFilePath: /usr/local/mongodb/logs/mongod.pid
net:
port: 27017
maxIncomingConnections: 1000000
unixDomainSocket:
enabled: true
pathPrefix: /usr/local/mongodb/tmp/
http:
enabled: false
JSONPEnabled: false
RESTInterfaceEnabled: false
security:
authorization: enabled
javascriptEnabled: true
keyFile: /usr/local/mongodb/conf/mongod.key
operationProfiling:
slowOpThresholdMs: 1000
mode: slowOp
storage:
engine: wiredTiger
dbPath: /usr/local/mongodb/data
directoryPerDB: true
indexBuildRetry: true
syncPeriodSecs: 60
wiredTiger:
engineConfig:
cacheSizeGB: 100
statisticsLogDelaySecs: 0
journalCompressor: snappy
directoryForIndexes: true
collectionConfig:
blockCompressor: snappy
indexConfig:
prefixCompression: true
journal:
enabled: true
replication:
oplogSizeMB: 102400
replSetName: MyRS
secondaryIndexPrefetch: all