GNU/Linux >> Linux の 問題 >  >> Linux

Linux の最大 PID

Linux の PID の最大値は構成可能です。 /proc/sys/kernel/pid_max からアクセスできます ファイル。このファイル (Linux 2.5 の新機能) は、PID がラップアラウンドする値を指定します (つまり、このファイルの値は最大 PID より 1 大きい値です)。このファイルのデフォルト値 32768 は、以前のカーネルと同じ範囲の PID になります。このファイルの値は、2^22 (PID_MAX_LIMIT、約 400 万) までの任意の値に設定できます。

プログラミングの観点からは、 pid_t を使用する必要があります プロセス ID を操作するためのタイプ。整数の特性を使用して最小/最大値にアクセスすることもできます。以下は、x86_64 プラットフォームで実行されている Linux 2.6.X で C++ と Boost を使用して実行する例です:

$ cat test.cpp 
#include <sys/types.h>
#include <iostream>
#include <boost/integer_traits.hpp>

using namespace std;

int main ()
{
    cout << "pid_t max = " << boost::integer_traits<pid_t>::const_max << endl;
}

$ ./test 
pid_t max = 2147483647

proc(5) から マニュアルページ:

<ブロック引用>

/proc/sys/kernel/pid_max (Linux 2.5.34 以降)

このファイルは、PID がラップアラウンドする値を指定します (つまり、このファイルの値は最大 PID より 1 大きい値です)。この値より大きい PID は割り当てられません。したがって、このファイルの値は、プロセスとスレッドの総数に対するシステム全体の制限としても機能します。このファイルのデフォルト値 32768 は、以前のカーネルと同じ範囲の PID になります。 32 ビット プラットフォームでは、pid_max の最大値は 32768 です。 64 ビット システムでは、pid_max 2^22 (PID_MAX_LIMIT までの任意の値に設定できます) 、約 400 万)


デフォルトでは 32768 です。システムの値は /proc/sys/kernel/pid_max で読み取ることができます .

また、64 ビット システムでは値を高く設定できます (最大 2 =4,194,304)。

echo 4194304 > /proc/sys/kernel/pid_max

詳細はこちら:

http://www.cs.wisc.edu/condor/condorg/linux_scalability.html (archive.org 経由)


Linux
  1. Linux –すべてがファイルですか?

  2. プロセスIDの最大値は?

  3. Linuxでファイルの名前を変更するにはどうすればよいですか?

  1. Linuxでファイルを移動する方法

  2. Linuxファイルパーミッションの基本

  3. Linux PID のリサイクル

  1. Linuxファイルのアクセス許可について

  2. Linuxテールコマンド

  3. Linuxタッチコマンド