開いているファイルの許可数を増やす2つの方法を読みました(問題がある場合は、ルートの変更を試みています)。
1つの方法は、/etc/security/limits.conf
の設定を次のように更新することです。
* soft nofile 500000
* hard nofile 500000
root soft nofile 500000
root hard nofile 500000
アクティブなシェルの設定を行うには、ulimit -n 500000
を実行するだけでよく、再起動やログアウト/ログインは必要ありませんが、サービスの再起動(?)が必要になる場合があります。
もう1つのオプションは、/etc/sysctl.conf
を更新することです。
echo 'fs.file-max = 500000' >> /etc/sysctl.conf
アクティブなシェルの設定を行うには、sysctl -p
を実行し、sysctl fs.file-max
で確認できます。
だから私の質問は、違いは何ですか?ありますか?私はUbuntu 14.04.2 LTS
にいます
違いはスコープと、それがどのように適用されるかです。 sysctlを介して設定されたオープンファイルの制限はシステム全体に適用されますが、/etc/security/limits.conf
を介して設定された制限はそこで指定された条件を満たすものにのみ適用されます。その他の主な違いは、/etc/security/limits.conf
制限がulimitを介して適用されるため、sysctl制限が本質的にカーネル自体にメモリ割り当て制限を設定する一方で、より簡単に変更できることです。
原則として、ワイルドカード一致でグローバル制限を設定している場合でも、ほとんどの場合/etc/security/limits.conf
を使用することをお勧めします。これは、多少信頼性が高く、ulimit制限にヒットすると、通常、より適切に失敗します。カーネルのメモリ割り当て制限に達するよりも。