LoginSignup
26
26

More than 5 years have passed since last update.

MongoDBで重要なOSの設定

Posted at

MongoDBで特に重要なOSの設定は以下の3つ

  1. ulimitを大きくする
  2. readaheadを小さくする
  3. NUMAをきる

ulimitを大きくする

理由はTCPコネクションの枯渇を回避するため。

MongoDBはレプリケーションやシャーディングを使って、構成するコンポーネント(mongod,mongos,config)の数が多くなると、利用するTCPコネクション数がどんどん増えていく。

シングル構成であればあまり気にする必要はないかもしれない。

readaheadを小さくする

理由は物理メモリを効率よく利用するため。

readaheadはファイルをmmapでメモリにマップするときのサイズだが、このサイズが大きいとクエリで利用するドキュメント以外のデータもメモリにマップされてしまうことが多く、物理メモリが効率よく使えないことが多い。

MongoDBのresで表される物理メモリ利用量が、搭載する物理メモリ量よりも小さい(半分ぐらい)の場合は、このチューニングをしてみるとよいだろう

NUMAをきる

理由はCPUが効率よくメモリを利用できるため

NUMAはざっくり言うと、複数CPU複数メモリ搭載時に、各CPUが利用するメモリを、そのCPUが早くアクセスできるメモリに優先する、ハードウェアのアーキテクチャ。
MongoDBはメモリ全体をまんべんなく使うため、この機能を有効にする意味はない。むしろ逆効果になる。

NUMAが有効なハードウェアであり、CPUネックになっている場合は、このチューニングをした方がよいだろう。

詳しい設定方法

公式ホームページに掲載されている
http://docs.mongodb.org/manual/administration/production-notes/

26
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
26