web-dev-qa-db-ja.com

fs.file-maxおよびulimitを使用してLinuxファイル記述子の制限を構成する方法

Linux上で実行されるサーバーアプリケーションは、多くの場合、例として大量のオープンファイルハンドラーを必要とします。 HBase ulimitHadoop epoll制限

このwikiエントリは、Linuxファイル制限設定のドキュメンタリーとして機能する必要があります。

  • ソフトリミットとハードリミットとは何ですか?
  • ハード制限を制御する方法は?
  • ソフトリミットを制御する方法
  • カーネルfs.file-maxとユーザーulimit -nは関連していますか?

さまざまなベンダーが異なる方法で構成するため、構成が有効であるLinuxディストリビューションについて説明してください。


更新lstvanの回答に基づいて:

これを自動化したい人のために、少なくともUbuntuサーバーでは、これをマシンのインストールスクリプトに含めることができます。

echo 'fs.file-max = 65000' > /etc/sysctl.d/60-file-max.conf
echo '* soft nofile 65000' > /etc/security/limits.d/60-nofile-limit.conf
echo '* hard nofile 65000' >> /etc/security/limits.d/60-nofile-limit.conf
echo 'root soft nofile 65000' >> /etc/security/limits.d/60-nofile-limit.conf
echo 'root hard nofile 65000' >> /etc/security/limits.d/60-nofile-limit.conf
6
Maxim Veksler

オペレーティングシステムでは、ホストで実行中のアプリケーションが開くことができるファイル数に制限を設定しています。 2つの構成ファイルを変更することで、基本値を通常1024に簡単に拡張できます。

# vi /etc/sysctl.conf

fs.file-max = 32000

# vi /etc/security/limits.conf

youruser       soft    nofile   10000
youruser       hard    nofile   30000

ハード制限とソフト制限:

man 5 limits.conf

hard
for enforcing hard resource limits. These limits are set by the superuser and 
enforced by the Kernel. The user cannot raise his requirement of system resources
above such values.

soft
for enforcing soft resource limits. These limits are ones that the user
can move up or down within the permitted range by any pre-exisiting hard 
limits. The values specified with this token can be thought of as default values,
for normal system usage.

HTH

9
Istvan

Ubuntuでファイル制限を増やす場合は、アスタリスクを使用して、ソフトおよびハードファイル制限の「すべてのユーザー」を示すことができます。ただし、これにはnotにrootユーザーが含まれるため、増加した制限をrootユーザーにも適用したい場合は個別に定義する必要があります(したがって、「rootに別の制限を設定できます」ユーザー」、「その他のユーザー向け」など)のように:

* soft nofile 4096
* hard nofile 10240
root soft nofile 4096
root hard nofile 10240

これらを/etc/security/limits.d/60-nofile-limit.confなどの個別のファイルに追加するのがおそらく最もクリーンです。

0
Ville