Help us understand the problem. What is going on with this article?

MongoDB 3.0インストール後のワーニングの消し方

More than 1 year has passed since last update.

インストール自体は、2.6の時の手順と変わらなかった。
インストール後にいくつかワーニングがでたので、インストールとワーニングの消し方を纏める。

インストール

インストール自体はMongoDBのドキュメントを見ながら実施
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/

インストール準備

console
$sudo vi /etc/yum.repos.d/mongodb-org-3.0.repo 
mongodb-org-3.0.repoの内容
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1

インストール実行

console
$sudo yum install -y mongodb-org

サービス起動

console
$sudo service mongod start

と普通に起動し、mongoコマンドでアクセスすると、

console
$ mongo
MongoDB shell version: 3.0.0
connecting to: test
Server has startup warnings: 
2015-03-06T23:40:40.565+0900 I CONTROL  [initandlisten] 
2015-03-06T23:40:40.565+0900 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2015-03-06T23:40:40.565+0900 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2015-03-06T23:40:40.565+0900 I CONTROL  [initandlisten] 
2015-03-06T23:40:40.566+0900 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-03-06T23:40:40.566+0900 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2015-03-06T23:40:40.566+0900 I CONTROL  [initandlisten] 
2015-03-06T23:40:40.566+0900 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 1024 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
2015-03-06T23:40:40.566+0900 I CONTROL  [initandlisten] 
> 

こんな感じでワーニングメッセージが表示される。
以下の手順でワーニングを消す

インストール後の設定(1) ~「WARNING: soft rlimits too low. 」の消し方

console
$sudo vi /etc/security/limits.d/90-nproc.conf

上記はCentOSの場合なので、ディストリビューションによっては、
/etc/security/limits.conf
だったりすると思う。

90-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

*          soft    nproc     1024
root       soft    nproc     unlimited

*          soft    nofile    64000  # この行追加
*          hard    nofile    64000  # この行追加
console
$su -
# service mongod restart

これで「WARNING: soft rlimits too low. 」は消える。
rebootが必要だったかもしれない。

(2015/07/22追記)
「WARNING: soft rlimits too low. 」は、CentOSにインストールした場合に発生した。
AmazonLinux(Amazon Linux AMI 2015.03 (HVM), SSD Volume Type)では発生しなかった。
(2015/07/22追記 終)

インストール後の設定(2)~「WARNING: /sys/kernel/mm/transparent_hugepage/enabled(or defrag ) is 'always'.」の消し方

console
$ sudo vi  /etc/rc.local
rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then  # ↑ここから追加
   echo never > /sys/kernel/mm/transparent_hugepage/enabled   # │
fi                                                            # │
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then   # │
   echo never > /sys/kernel/mm/transparent_hugepage/defrag    # │
fi                                                            # ↓ここまで追加

これで
「WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.」
「WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.」
が消える。
ここもrebootが必要だったかもしれない。

以上。記憶を元にメモ。
再度どこかで検証し、更新予定。

AmazonLinuxにて(2015/07/22追記)

CentOSでは、
「WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.」
「WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.」
どちらも発生したが、
AmazonLinux(Amazon Linux AMI 2015.03 (HVM), SSD Volume Type)では、
「WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.」
のみ発生した。
(2015/07/22追記 終)

TransparetHugePagesについて(2015/09/28追記)

今まで気づかなかったが、公式のチュートリアルにも、ベストパフォーマンスにするためTransparetHugePagesはDisableにすべき。と記載があった。

https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/
Transparent Huge Pages (THP) is a Linux memory management system that reduces the overhead of Translation
 Lookaside Buffer (TLB) lookups on machines with large amounts of memory by using larger memory pages.

However, database workloads often perform poorly with THP, because they tend to have sparse rather than 
contiguous memory access patterns. You should disable THP on Linux machines to ensure best performance with 
MongoDB.

※TransparetHugePagesとは
カーネルのメモリマネジメントの仕組みの一つで性能改善を目的とした機能のようだ。
RedHatのドキュメント(パフォーマンスチューニングガイド「5.2. Huge pages および transparent huge pages」)を見ると
「huge Pagesの作成、管理、使用の多くを自動化する抽象レイヤー」とある。
普通のアプリケーションサーバーとして使った場合にはパフォーマンスが良くなるのかもしれない。
Transparet HugePages databaseでググるとMongoDB以外にも無効を推奨するデータベースが多い。

メモ:時間があるときに、Documentation/vm/transhuge.txtをじっくり読む
(2015/09/28追記 終)

hmitr
allergosmart
IoT x AI x BigData の一貫したプラットホーム提供 & それを基盤とした教育サービス・ヘルススポーツサービスを展開しているベンチャー企業です。米Chicago Basketball Academy の公式パートナー 新しいメンバーもめちゃ募集中!       ちょびっとでも興味があれば是非美味しいランチに行きましょう!気軽にメールを送ってください!
http://www.allegrosmart.com/ja/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした