mongodのulimitsを設定するにはどうすればよいですか?


8

mongodCentOSでプロセス/ユーザーのulimitを設定するにはどうすればよいですか?

私は公式ドキュメント読みましたが、 OS固有の手順は提供していません。

  • これを設定してulimit -u 64000、再起動後も維持する必要があります。

  • CentOS 5.5を実行していますが、間もなく6.5にアップグレードします。

  • パッケージマネージャーによってインストールされたスクリプトを変更したくない

回答:


12

/etc/security/limits.conf必要に応じて変更します。例:

user soft nproc 64000

この行は、プロセッサーの数(-u)を「ユーザー」の64000に設定します。ソフト/ハードの制限は同じにすることができます(ソフトはスパイクを許可し、ハードはスポーンを防止します)。


ありがとうございます。ただし、これを実行してmongod cat /proc/{pid}/limitsを再起動しても、変化はありません。confが確実に読み込まれるようにするために、何か追加の処理が必要ですか?
Tim

1
はい、サーバーを再起動します。カーネルによって設定されます。
Nathan C

7

CentOS mongod起動スクリプトの新しいバージョン(/etc/init.d/mongod)には、デフォルト設定がstartオプションに組み込まれています。

start()
{
  # Recommended ulimit values for mongod or mongos
  # See http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
  #
  ulimit -f unlimited
  ulimit -t unlimited
  ulimit -v unlimited
  ulimit -n 64000
  ulimit -m unlimited
  ulimit -u 32000

  echo -n $"Starting mongod: "
  daemon --user "$MONGO_USER" "$NUMACTL $mongod $OPTIONS >/dev/null 2>&1"
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch /var/lock/subsys/mongod
}

値を変更してスクリプトを変更しない場合は、スクリプトを/etc/init.d/mongod-customにコピーしてから、カスタムinitスクリプトを編集し、値を設定して、mongodではなくmongod-customを使用するようにchkconfigを変更します。


6

タスピウスの答えに追加すると、彼はinitスクリプトで説明しているように制限が設定されているようですが、私はまだ警告を受けていました

[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.

これは、initスクリプトで定義されたファイル制限が有効になったが、プロセス制限は有効にならなかったことを示唆しているようです。また、ネイサンCの答えに従って追加

mongod soft nproc 64000

/etc/security/limits.d/90-nproc.confシステムを再起動すると問題が解決しました。

mongodb initスクリプトに値があるにもかかわらず、なぜそれが必要であったのかを誰かが明らかにすることができれば、私はすべて耳にしています!


ここでも同じですが、「nproc」設定が無視された理由は私には不思議です。
Ostati

1

/etc/security/limits.confファイルにこの変更を加えます。ハードリミットとソフトリミットを設定すれば、問題ありません。


直接ファイルを/etc/security/limits.d/いじるのではなく、内部でファイルを使用することをお勧めしますlimits.conf
Joshua Grigonis

1

変更を永続的にするには、たとえば、Red Hat 7では、initスクリプトを編集する必要があります。initスクリプトには次の行があります。

LimitNOFILE=64000

次のものを追加する必要があります:

LimitNPROC=32000

その後、サービスを再起動します。

これがお役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.