Linuxで開くことができるファイルの数に制限を設定するにはどうすればよいですか?


11

を使用してJavaアプリを実行する予定ですnohup ... &。制限は、このようなコマンドに適用する必要があります。


しかし、これは私のJavaプログラムでエラーを引き起こしました

回答:


5

ほとんどのシステムはPAMを使用し、pam_limitsモジュールに基づいて制限を設定します/etc/security/limits.conf。開いているファイルのユーザーごとの制限はと呼ばれnofileます。すべてのユーザーまたは特定のユーザーまたはグループに設定でき、ユーザーが上書きできる制限(ソフト制限)と、rootのみが上書きできる別の制限(ハード制限)を設定できます。ドキュメントlimits.confmanページには、詳細情報を持っています。たとえば、全員の制限を50000に上げるには、次の行を入力します/etc/limits.conf(設定はログイン時に有効になります)。

* - nofile 50000

3

あなたが追加することができますfs.file-max = <your number>/etc/sysctl.conf。次に再起動します。


猫を/ proc / sys / fs /ファイル-maxが169203ですが、ulimitの-nは1024です

再起動する必要はありません。実行するだけsysctl fs.file-max=123456です。(/etc/sysctl.conf起動時にsysctlコンテンツを呼び出すスクリプトによって読み取られます。)
ジル「SO-停止する悪」

2
ulimit -n

プロセスごとの設定を変更できます

/proc/sys/fs/file-max

または、呼び出されたsysctl変数をfs.file-max使用して、システム全体の値を読み取って設定できます。


猫を/ proc / sys / fs /ファイル-maxが169203ですが、ulimitの-nは1024です

0

これにはulimitを使用できます。

http://bloggerdigest.blogspot.com/2006/10/purpose-of-ulimit-linux-command.html

そのような調整を行う前に、非常に多くのファイルハンドルを開くことが絶対に必要であることを確認する必要があります。ループ内でinputstream.close()を実行するのを忘れたからといって、最大ファイルハンドルを増やすと、根本的な問題が遅れるだけです。


1
多くのクライアントに接続したい

0

vi〜/ .bashrcそして、ファイルの最後に行を追加します

ulimit -n 169203

0

プログラムインスタンスごとにulimit(Bashコマンド-man bashまたはシェルに似たものを検索)を使用します。何をしているのかわからない場合、DoSの可能性がある場合は、グローバルシステム制限を使用しないでください。

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