アプリケーションを実行すると、に関するエラーが発生することがありますtoo many files open
。
実行ulimit -a
すると、制限が1024であると報告されます。制限を1024より大きくするにはどうすればよいですか?
編集
ulimit -n 2048
すると権限エラーが発生します。
アプリケーションを実行すると、に関するエラーが発生することがありますtoo many files open
。
実行ulimit -a
すると、制限が1024であると報告されます。制限を1024より大きくするにはどうすればよいですか?
編集
ulimit -n 2048
すると権限エラーが発生します。
回答:
いつでもを試すことができますulimit -n 2048
。これは現在のシェルの制限をリセットするだけで、指定する数はハード制限を超えてはいけません
各オペレーティングシステムでは、構成ファイルに異なるハード制限が設定されています。たとえば、Solarisでのハードオープンファイルの制限は、/ etc / systemからの起動時に設定できます。
set rlim_fd_max = 166384
set rlim_fd_cur = 8192
OS Xでは、これと同じデータを/etc/sysctl.confに設定する必要があります。
kern.maxfilesperproc=166384
kern.maxfiles=8192
Linuxでは、これらの設定は多くの場合/etc/security/limits.confにあります。
2種類の制限があります。
ソフト制限はどのユーザーでも設定できますが、ハード制限はrootだけが変更できます。制限はプロセスのプロパティです。これらは子プロセスの作成時に継承されるため、システム全体の制限は、initスクリプトでのシステム初期化中に設定する必要があり、ユーザーの制限は、たとえばpam_limitsを使用してユーザーログイン中に設定する必要があります。
多くの場合、マシンの起動時にデフォルトが設定されています。したがって、個々のシェルでulimitをリセットしても、再起動時に以前の値にリセットされることがあります。デフォルトを変更する場合は、存在するulimitコマンドのブートスクリプトをgrepすることをお勧めします。
ulimit
。使用しているものを指定する必要があります(WSL、Cygwinなど)。
Linuxを使用していて、権限エラーが発生した場合は、/etc/limits.conf
or /etc/security/limits.conf
ファイルで許可されている制限を引き上げる必要があります(ファイルが配置される場所は、特定のLinuxディストリビューションによって異なります)。
たとえば、マシン上の誰でも自分の開いているファイルの数を最大10000まで増やすことができるようにするには、limits.conf
ファイルに行を追加します。
* hard nofile 10000
次に、ログアウトしてシステムに再ログインすると、次のことができるはずです。
ulimit -n 10000
許可エラーなし。
root
ユーザーには適用されません。制限root hard nofile 10000
を調整するかどうかを指定する必要がありますroot
。
ulimit
、ついに私がrootとしてログインしていることがわかりました。だから私は1024を見続けてきましたulimit -a
。ワイルドケアを変更し、*
内部を追加しましたlimits.conf
。すべて順調です(sshキーを使用しても心配ありません:P)-ありがとう!!!
/etc/security/limits.d/
。
1)次の行を追加します /etc/security/limits.conf
webuser hard nofile 64000
次に、webuserとしてログインします
su - webuser
2)webuserの次の2つのファイルを編集します
実行して.bashrcおよび.bash_profileファイルを追加します
echo "ulimit -n 64000" >> .bashrc ; echo "ulimit -n 64000" >> .bash_profile
3)ログアウトしてから再度ログインし、変更が正しく行われたことを確認します。
$ ulimit -a | grep open
open files (-n) 64000
それとそれは彼らのブーム、ブームブームです。