変更されていない環境に設定された制限

変更されていない環境に設定された制限

/etc/security/limits.confが編集または変更されていない場合は、コメントのみが残ります。しかし、 'cat /proc/self/limits'は、いくつかの有効な制限があることを示しています。これらはカーネルにコンパイルされましたか?そうでない場合、システムは変更されていない環境で最初のデフォルト制限をどこで取得しますか?

[~]$ cat /proc/self/limits
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            10485760             unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             1024                 60413                processes 
Max open files            1024                 4096                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       60413                60413                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us        

ベストアンサー1

おそらく最も投票された回答を確認する必要があります。 ServerFault SEデフォルトのulimit値はどこに設定されていますか? (Linux、セントース)

修正する: 推奨されるように他のサイトの情報をコピーして貼り付けます。

これらの「基本」制限は次のように適用されます。

  • これLinuxカーネル存在する起動時間initプロセス用)、
  • 遺産、親プロセスの制限(時々fork(2))、
  • ポリアクリルアミド ユーザーセッションが開いたとき(カーネル/継承された値は置き換え可能)、
  • これプロセスそれ自体(PAMおよびカーネル/継承された値を置き換えることができる、参照setrlimit(2)

通常のユーザープロセスはハード制限を増やすことはできません。

Linuxカーネル

起動時に、Linuxはプロセスにデフォルトのinit制限を設定し、この制限は他のすべての(子)プロセスに継承されます。この制限を表示するには:grep process /proc/1/limits

たとえば、カーネルのデフォルト値は最大ファイル記述子数ulimit -n)は1024/1024(ソフト、ハード)であり、提案されましたLinux 2.6.39では1024/4096。

基本最大プロセス数あなたは正しいです。限られたについて:

Total RAM in kB / 128

x86 アーキテクチャの場合 (少なくとも) ディストリビューションでデフォルトのカーネル値を変更する場合があるためカーネルのソースコードを確認してくださいのためkernel/fork.cfork_init()。 「プロセス数」の制限を RLIMIT_NPROC と呼びます。

ポリアクリルアミド

通常、ログイン時にユーザー認証を保証するために、PAMはいくつかのモジュールで使用されます(参考資料を参照/etc/pam.d/login)。

Debian で制限の設定を担当する PAM モジュールは、次の場所にあります/lib/security/pam_limits.so

ライブラリはlimits.confおよびからその設定を読み込みますlimits.d/*.conf。しかし、これらのファイルが空であってもpam_limits.soはハードコードされた値を使用できます。ソースコードで確認できます。

たとえば、Debianでは、ライブラリパッチ済みこれを行うと、基本的に最大プロセス数nproc)は無限であり、最大ファイル数( nofile) は 1024/1024 です:

  case RLIMIT_NOFILE:
      pl->limits[i].limit.rlim_cur = 1024;
      pl->limits[i].limit.rlim_max = 1024;

だから、CentOS PAMモジュールのソースコードの確認(RLIMIT_NPROCを探してください)。

ただし、多くのプロセスがPAMを通過しないことに注意してください(通常、デーモンやcronジョブなどのログインユーザーが起動していない場合)。

おすすめ記事