すべてのユーザーに対してファイル記述子の最大数を永続的に増やすために何が正確に必要かを理解できないようです。
/etc/security/limits.conf
:
root hard nofile 1500000
root soft nofile 1000000
root hard nproc 15000
root soft nproc 10000
* hard nofile 1500000
* soft nofile 1000000
* hard nproc 15000
* soft nproc 10000
/etc/pam.d/common-session
に以下を配置しました :
session required pam_limits.so
再起動後、任意のユーザーとしてログインし、ulimit -n
を発行します 結果は1024
。
その後、pam_limits.so
を要求してみました /etc/pam.d
の下のすべてのファイルに 。再起動しました。ログインしました。そのような運はありません。
コマンドulimit -n 1000000
を発行した場合 、次にチェックすると、制限が期待どおりに設定されています。そこで、@reboot ulimit -n 1000000
を配置しました crontab -e
に 。再起動しました。ログインしました。運がありません。
/etc/ssh/sshd_config
を確認しました PAMが有効になっています。
再起動するたびに制限を設定してみました:
/sbin/sysctl -w fs.file-max=1000000
/sbin/sysctl -p
運がない。
大量の同時トラフィックがあるサーバーがあり、サーバーがファイル記述子をクリアするのに非常に長い時間がかかるため、これらの制限を高くする必要があります。ファイル記述子の制限を恒久的に引き上げるにはどうすればよいですか?
承認された回答:
この方法で、すべてのユーザーのファイル制限の数を増やしました(/etc/security/limits.conf
からのセグメント ):
# - memlock - max locked-in-memory address space (KB)
# - nofile - max number of open files (Doug: - so Samba will not complain)
* - nofile 16384
# - rss - max resident set size (KB)
# - stack - max stack size (KB)
それは12.04サーバー上にありました。ただし、14.04サーバーで100000をテストしたところ、正常に機能しました。 (編集:20.04でもチェック済み)
~/config/security$ ulimit -n
16384
編集:ほとんどのアプリケーションでは十分ですが、rootのデフォルト値は変更されません:
# ulimit -n
1024
ルートの番号も変更する必要がある場合は、(2020.09.04 –現在131,072を使用しています):
# - memlock - max locked-in-memory address space (KB)
# - nofile - max number of open file descriptors
* - nofile 131072
root - nofile 131072
# - rss - max resident set size (KB)
# - stack - max stack size (KB)
そしてそう:
$ sudo su
# ulimit -n
131072