46

Amazon Linux AMI を実行している EC2 インスタンスに SSH 接続した後、次のことを試しました。

ulimit -n 20000

...そして、次のエラーが発生しました:

-bash: ulimit: open files: cannot modify limit: Operation not permitted

ただし、シェルでは、現在のセッションに対してのみ、この数を減らすことができます。

EC2 インスタンスの ulimit を(永続的に)増やす方法はありますか?

4

3 に答える 3

89

実際、ulimitコマンドによる値の変更は、現在のシェル セッションにのみ適用されます。新しい制限を永続的に設定する場合は、/etc/security/limits.confファイルを編集してハード制限とソフト制限を設定する必要があります。次に例を示します。

# <domain> <type> <item>  <value>
    *       soft  nofile  20000
    *       hard  nofile  20000

ファイルを保存し、ログアウトしてから再度ログインし、ulimit -nコマンドを使用して構成をテストします。それが役に立てば幸い。

PS 1: 次の点に注意してください。

  • ソフト制限: カーネルが対応するリソースに適用する値。
  • ハード リミット: ソフト リミットの上限として機能します。

PS 2: の追加ファイルは、/etc/security/limits.d/で構成されている内容に影響を与える可能性がありますlimits.conf

于 2012-07-05T13:23:37.370 に答える
4

答えてくれてありがとう。私にとっては、/etc/security/limits.conf を更新するだけでは十分ではありませんでした。「開いているファイル」の ulimit -n のみが更新され、nproc は更新されませんでした。/etc/security/limits.d/whateverfile を更新した後、nproc "ulimit -u" も更新されました。

手順:

  • sudo vi /etc/security/limits.d/whateverfile
  • nproc/nofile に設定された制限の更新
  • sudo vi /etc/security/limits.conf
*  soft  nproc  65535
*  hard  nproc  65535
*  soft  nofile 65535
*  hard  nofile 65535
  • マシンを再起動しますsudo reboot

PSコメントとして追加できなかったため、回答として投稿する必要がありました。

于 2019-10-25T19:55:41.697 に答える