2016-09-20 16 views
4

私は2つのLinuxシステムをチェックしましたが、どちらも64ビットでしたが、両方のPID_MAXが異なります。 1つのシステムでPID_MAXがLinuxに依存する要因は何ですか?

(SYSTEM1)

cat /proc/sys/kernel/pid_max 
32768 

SYSTEM1構成:

のdmesg | grep -i SMPその他(SYSTEM2)に、それは

cat /proc/sys/kernel/pid_max 
65536 

SYSTEM2構成だったのに対し*

getconf PAGESIZE 
4096 

cat /proc/cpuinfo | awk '/^processor/{print $3}' | tail -1 
11 
cat /proc/cpuinfo 
processor : 0 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 45 
model name : Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz 
stepping : 7 
microcode : 1803 
cpu MHz  : 2201.000 
cache size : 15360 KB 
physical id : 0 
siblings : 6 
core id  : 0 
cpu cores : 6 
apicid  : 0 
initial apicid : 0 
fpu  : yes 
fpu_exception : yes 
cpuid level : 13 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid 
bogomips : 4389.48 
clflush size : 64 
cache_alignment : 64 
address sizes : 46 bits physical, 48 bits virtual 
power management: 

processor : 1 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 45 
model name : Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz 
stepping : 7 
microcode : 1803 
cpu MHz  : 2201.000 
cache size : 15360 KB 
physical id : 0 
siblings : 6 
core id  : 1 
cpu cores : 6 
apicid  : 2 
initial apicid : 2 
fpu  : yes 
fpu_exception : yes 
cpuid level : 13 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid 
bogomips : 4389.48 
clflush size : 64 
cache_alignment : 64 
address sizes : 46 bits physical, 48 bits virtual 
power management: 

processor : 2 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 45 
model name : Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz 
stepping : 7 
microcode : 1803 
cpu MHz  : 2201.000 
cache size : 15360 KB 
physical id : 0 
siblings : 6 
core id  : 2 
cpu cores : 6 
apicid  : 4 
initial apicid : 4 
fpu  : yes 
fpu_exception : yes 
cpuid level : 13 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid 
bogomips : 4389.48 
clflush size : 64 
cache_alignment : 64 
address sizes : 46 bits physical, 48 bits virtual 
power management: 

processor : 3 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 45 
model name : Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz 
stepping : 7 
microcode : 1803 
cpu MHz  : 1300.000 
cache size : 15360 KB 
physical id : 0 
siblings : 6 
core id  : 3 
cpu cores : 6 
apicid  : 6 
initial apicid : 6 
fpu  : yes 
fpu_exception : yes 
cpuid level : 13 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid 
bogomips : 4389.48 
clflush size : 64 
cache_alignment : 64 
address sizes : 46 bits physical, 48 bits virtual 
power management: 

processor : 4 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 45 
model name : Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz 
stepping : 7 
microcode : 1803 
cpu MHz  : 2201.000 
cache size : 15360 KB 
physical id : 0 
siblings : 6 
core id  : 4 
cpu cores : 6 
apicid  : 8 
initial apicid : 8 
fpu  : yes 
fpu_exception : yes 
cpuid level : 13 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid 
bogomips : 4389.48 
clflush size : 64 
cache_alignment : 64 
address sizes : 46 bits physical, 48 bits virtual 
power management: 

processor : 5 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 45 
model name : Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz 
stepping : 7 
microcode : 1803 
cpu MHz  : 1200.000 
cache size : 15360 KB 
physical id : 0 
siblings : 6 
core id  : 5 
cpu cores : 6 
apicid  : 10 
initial apicid : 10 
fpu  : yes 
fpu_exception : yes 
cpuid level : 13 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid 
bogomips : 4389.48 
clflush size : 64 
cache_alignment : 64 
address sizes : 46 bits physical, 48 bits virtual 
power management: 

processor : 6 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 45 
model name : Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz 
stepping : 7 
microcode : 1803 
cpu MHz  : 2201.000 
cache size : 15360 KB 
physical id : 1 
siblings : 6 
core id  : 0 
cpu cores : 6 
apicid  : 32 
initial apicid : 32 
fpu  : yes 
fpu_exception : yes 
cpuid level : 13 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid 
bogomips : 4392.34 
clflush size : 64 
cache_alignment : 64 
address sizes : 46 bits physical, 48 bits virtual 
power management: 

processor : 7 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 45 
model name : Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz 
stepping : 7 
microcode : 1803 
cpu MHz  : 2201.000 
cache size : 15360 KB 
physical id : 1 
siblings : 6 
core id  : 1 
cpu cores : 6 
apicid  : 34 
initial apicid : 34 
fpu  : yes 
fpu_exception : yes 
cpuid level : 13 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid 
bogomips : 4392.34 
clflush size : 64 
cache_alignment : 64 
address sizes : 46 bits physical, 48 bits virtual 
power management: 

processor : 8 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 45 
model name : Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz 
stepping : 7 
microcode : 1803 
cpu MHz  : 2201.000 
cache size : 15360 KB 
physical id : 1 
siblings : 6 
core id  : 2 
cpu cores : 6 
apicid  : 36 
initial apicid : 36 
fpu  : yes 
fpu_exception : yes 
cpuid level : 13 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid 
bogomips : 4392.34 
clflush size : 64 
cache_alignment : 64 
address sizes : 46 bits physical, 48 bits virtual 
power management: 

processor : 9 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 45 
model name : Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz 
stepping : 7 
microcode : 1803 
cpu MHz  : 2201.000 
cache size : 15360 KB 
physical id : 1 
siblings : 6 
core id  : 3 
cpu cores : 6 
apicid  : 38 
initial apicid : 38 
fpu  : yes 
fpu_exception : yes 
cpuid level : 13 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid 
bogomips : 4392.34 
clflush size : 64 
cache_alignment : 64 
address sizes : 46 bits physical, 48 bits virtual 
power management: 

processor : 10 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 45 
model name : Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz 
stepping : 7 
microcode : 1803 
cpu MHz  : 1200.000 
cache size : 15360 KB 
physical id : 1 
siblings : 6 
core id  : 4 
cpu cores : 6 
apicid  : 40 
initial apicid : 40 
fpu  : yes 
fpu_exception : yes 
cpuid level : 13 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid 
bogomips : 4392.34 
clflush size : 64 
cache_alignment : 64 
address sizes : 46 bits physical, 48 bits virtual 
power management: 

processor : 11 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 45 
model name : Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20GHz 
stepping : 7 
microcode : 1803 
cpu MHz  : 1200.000 
cache size : 15360 KB 
physical id : 1 
siblings : 6 
core id  : 5 
cpu cores : 6 
apicid  : 42 
initial apicid : 42 
fpu  : yes 
fpu_exception : yes 
cpuid level : 13 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid 
bogomips : 4392.34 
clflush size : 64 
cache_alignment : 64 
address sizes : 46 bits physical, 48 bits virtual 
power management: 

を許可:

のdmesg | grepの-i SMP *

SMP許可:64個のCPU、61個のホットプラグCPUのmanページから

getconf PAGESIZE 
4096 

cat /proc/cpuinfo | awk '/^processor/{print $3}' | tail -1 
2 

cat /proc/cpuinfo 
processor : 0 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 23 
model name : Intel(R) Xeon(R) CPU   X5450 @ 3.00GHz 
stepping : 6 
microcode : 4294967295 
cpu MHz  : 2992.467 
cache size : 6144 KB 
physical id : 0 
siblings : 3 
core id  : 0 
cpu cores : 3 
apicid  : 0 
initial apicid : 0 
fpu  : yes 
fpu_exception : yes 
cpuid level : 10 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good unfair_spinlock pni ssse3 cx16 sse4_1 hypervisor lahf_lm 
bogomips : 5984.93 
clflush size : 64 
cache_alignment : 64 
address sizes : 38 bits physical, 48 bits virtual 
power management: 

processor : 1 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 23 
model name : Intel(R) Xeon(R) CPU   X5450 @ 3.00GHz 
stepping : 6 
microcode : 4294967295 
cpu MHz  : 2992.467 
cache size : 6144 KB 
physical id : 0 
siblings : 3 
core id  : 1 
cpu cores : 3 
apicid  : 1 
initial apicid : 1 
fpu  : yes 
fpu_exception : yes 
cpuid level : 10 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good unfair_spinlock pni ssse3 cx16 sse4_1 hypervisor lahf_lm 
bogomips : 5984.93 
clflush size : 64 
cache_alignment : 64 
address sizes : 38 bits physical, 48 bits virtual 
power management: 

processor : 2 
vendor_id : GenuineIntel 
cpu family : 6 
model  : 23 
model name : Intel(R) Xeon(R) CPU   X5450 @ 3.00GHz 
stepping : 6 
microcode : 4294967295 
cpu MHz  : 2992.467 
cache size : 6144 KB 
physical id : 0 
siblings : 3 
core id  : 2 
cpu cores : 3 
apicid  : 2 
initial apicid : 2 
fpu  : yes 
fpu_exception : yes 
cpuid level : 10 
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good unfair_spinlock pni ssse3 cx16 sse4_1 hypervisor lahf_lm 
bogomips : 5984.93 
clflush size : 64 
cache_alignment : 64 
address sizes : 38 bits physical, 48 bits virtual 
power management: 

を許可します。

PROC/SYS /カーネル/ pid_maxする(Linux 2.5で新しい)このファイル(すなわち、このファイル内の値が最大PIDよりも大きい1 である)のPIDは、ラップアラウンドれる 値を指定します。このファイルのデフォルト値は 32768で、以前のカーネルと同じPID範囲になります。 32ビットplatfromsでは、32768がpid_maxの最大値です。 64ビットの システムでは、pid_maxは2^22(PID_MAX_LIMIT、 約400万)までの任意の値に設定できます。

これらのシステムのLinuxカーネルは同じですが、SYSTEM2はHyper-Vで動作しています。

今、私の質問は、pid_maxを変更する原因となる要因は何ですか? ありがとうございます。

+2

ご質問にお答えするには、両方のシステムに関する詳細を知る必要があります。 (1)お使いのマシンはホットプラグ対応CPUをサポートしていますか? (2)あなたのマシンごとにPAGE_SIZEとは何ですか? (3)各マシンのCPU番号は? (4)それぞれのマシンの '/ boot/config *'にある 'CONFIG_BASE_SMALL'の値は? –

+0

私はこの情報を提供することができますが、私はちょうどpid_max値を変更することができる要因を知りたいです。 –

+1

システムのページサイズとCPU数(現在または使用可能なシステムでCPUのホットプラグが可能かどうかによって異なります)それでも、あなたが私の前のコメントに言及しているあなたのパラメータを私に与えるなら、私はより具体的な回答を提供することができます。 –

答えて

5

pid_maxは、あなたが(ホットプラグCPUのシステムでは可能性がCPUの最大数を含むpid.c line 597

pid_max = min(pid_max_max, max_t(int, pid_max, 
      PIDS_PER_CPU_DEFAULT * num_possible_cpus())); 

num_possible_cpus()リターンでカーネルソースで見ることができる可能なCPUの数に基づいて設定されていますブート後にプラグイン可能)。

ご覧のとおり、最小値と最大値が表示されています。

最小値は、PID_MAX_DEFAULTマクロから派生したpid_maxの初期値です。この値は、コンパイル時の構成設定CONFIG_BASE_SMALLに応じて0x1000または0x8000になります。

最大値はpid_max_maxで、これはカーネルコンパイル時の設定(特にCONFIG_BASE_SMALLとPAGE_SIZE)から導出されます。これは、マクロPID_MAX_LIMIT see threads.h line 33に定義されています。

#define PID_MAX_LIMIT (CONFIG_BASE_SMALL ? PAGE_SIZE * 8 : \ 
    (sizeof(long) > 4 ? 4 * 1024 * 1024 : PID_MAX_DEFAULT)) 

ですから、例えばで一緒にこのすべてを置く:ここ(CentOSに6)私のシステム上:

  • PAGESIZEは4096
  • CONFIG_BASE_SMALLが0
  • です
  • したがって、PID_MAX_DEFAULTは0x8000(32768)です。
  • PID_MAX_LIMITは4 * 1024 * 1024 = 4194304
  • になります。
  • max_pidは、したがって、ユーザランドの範囲で4194304 <= max_pid <= 32768

だろう、あなたはファイル/sys/devices/system/cpu/possibleで可能なCPUの数を調べることができます。このファイルのデータ形式はちょっと変わっています。形式は0-maxのようになります。たとえば、0-15は最大16のCPUを意味します(数字がゼロになっていることに注意してください)。

このファイルとこのディレクトリのその他のファイルの詳細については、cputopology.txtを参照してください。一般的にはCPUのホットプラグについての詳細は

あなたは、カーネルのコンパイル時の構成設定を確認したい場合は、いくつかのヒントをthis answerをチェックし、 cpu-hotplug.txt

を参照してください。

NB。与えられたカーネル行番号はカーネル4.7で有効です。

+0

この情報はありがとうございます。任意のシステムで使用可能なCPUの数を取得する方法を教えてください。このコマンド/設定はありますか? –

+0

@SACHINGOYALの回答は、numの表示方法を示すもう少しの情報で更新されました。可能なCPU – harmic

+0

64ビットカーネルの場合、/ sys/devices/system/cpu/possible = 0-23.so "PIDS_PER_CPU_DEFAULT * num_possible_cpus()" = 1024 * 24 = 24576. pid_maxはどのようにして24576ではなく32768になりますか?もし私が何かを見過ごしてくれたら教えてください。 –

関連する問題