ulimit値を永続的に設定する方法は?


17

Debian Wheezyでは、次ulimit -aを提供します。

open files                      (-n) 1024

これを/etc/security/limits.confに追加します

*                hard    nofile          64000

その後再起動します。

またulimit -a、開いているファイルの最大数は1024です。だれでもそれに光を当てることができますか?


これはおそらく仮想ホストですか?
デニスノルテ14

いいえ、それはそれはMongoDBのサーバーだ
ICU

回答:


13

オプション1: ソフトリミットを高く設定しませんでした。

可能な解決策:

/etc/security/limits.confに追加

* soft nofile 2048

でテストする

ulimit -n 2048 

オプション2: ユーザーとしてログインし、「config」ファイル(プロファイル、bashrcなど)でソフト制限が低い値に設定されます。

etcフォルダーおよび/またはホームフォルダーのulimitの可能なソリューションfe grep。

警告:そこにあるファイル/ディレクトリの量に応じて、特定のディレクトリ/ファイルのみを検討することができます。

シモンズ:あなたが読んでみたいかもしれない似たような質問がたくさんあります。

特別なハード制限とソフト制限

詳細を詳しく説明する可能性のある他のソリューションについては、こちらをご覧ください Too Many Open Files


実際、ハード制限のみを64000に設定しようとしていました。したがって、ソフト制限はまだ1024のままでした。ソフト制限を64000 +ハード= 72000に設定しようとしました。しかし、うまくいきませんでした。「*-nofile 64000」も試しましたが、同じ結果が得られます。
ICU

読み取り「オープンファイルが多すぎる」の後、私は、カーネルの設定があるlimits.confの設定を上書きすることだろうと思ったが、「fs.file-MAX = 4933738」
ICU

aswellこの1からの回答をしてみてください@Icu:serverfault.com/questions/93234/...は あなたのシェルに関連するかもしれない
デニス・ノルティ

/etc/pam.d/otherとcommon-sessionに「session required pam_limits.so」を追加しましたが、それは役に立ちません...代わりに、「ulimit -n」をinitスクリプトに追加し、動作しますしかし、なぜシェルで正しい値を取得できないのでしょうか。
Icu 14

19

Debianにはバグがあります。増やすulimitには、これを/etc/pam.d/common-sessionファイルに追加する必要があります。

session required pam_limits.so

そして、で/etc/security/limits.conf追加:

*               soft    nofile          65535
*               hard    nofile          65535

その後、システムを再起動します。


1
/etc/pam.d/common-sessionファイルを変更する必要はありません。limits.confファイルに他の2行を追加するだけで機能しました:
Francesco Casula

再起動する必要はありません。
デビッドグッドウィン

これは残酷です。現在、debian 7では、これは機能していません。わからない:(何をすべきか-私は、新しい質問開くことがあります
ニック・ニューマン

12
ブーム。*ワイルドカードは機能しませんroot。のroot代わりに追加しましたが*、機能しています。ありがとうございました!
ニックニューマン

@FrancescoCasula-どのバージョンのDebianでしたか?これが本当にバグなのか、それがまだ存在するのかを把握しようとしています...
UpTheCreek

0

Debian 10上のApacheの私の場合、これは機能しましたが、上記は役に立ちませんでした:

echo "APACHE_ULIMIT_MAX_FILES='ulimit -n 16384'" >> /etc/apache2/envvars
service apache2 restart

私はチェックしました:

cat /proc/$pid/limits

..where $pidは、Apacheプロセスの1つのプロセスIDです。

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