MongoDB3.0.xの設定ファイルテンプレ
Advent Calendar にも投稿した内容ですが、MongoDB3系の設定周り。
僕はこんな感じで運用してますよ。という位の内容。
/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