Khi khởi động, kernel điều chỉnh mặc định pid_max
tùy thuộc vào số lượng CPU có sẵn. Khi số thấp, 32768 thông thường được chọn. Khác, việc tính toán được thực hiện như sau (hiển thị ở đây một hạt nhân 3.10 tương tự như RHEL nhưng bên cạnh một số biến thể, nó giống với mọi hạt nhân Linux gần đây):
include/linux/threads.h
:
/ *
* Điều này kiểm soát pid tối đa mặc định được phân bổ cho một quá trình
* /
#define PID_MAX_DEFAULT (CONFIG_BASE_SMALL? 0x1000: 0x8000)
0x8000 = 32768 là giá trị thông thường được sử dụng trên các hệ thống có ít hơn 32 luồng cpu.
và sau đó:
#define PIDS_PER_CPU_DEFAULT 1024
Những giá trị này sau đó được sử dụng trong kernel/pid.c
:
int pid_max = PID_MAX_DEFAULT;
và sau này :
/ * vết sưng mặc định và pid_max tối thiểu dựa trên số lượng cpus * /
pid_max = phút (pid_max_max, max_t (int, pid_max,
PIDS_PER_CPU_DEFAULT * num_possible_cpus ()));
pid_max_min = max_t (int, pid_max_min,
PIDS_PER_CPU_MIN * num_possible_cpus ());
pr_info ("pid_max: mặc định:% u tối thiểu:% u \ n", pid_max, pid_max_min);
Vì vậy, từ OP, điều này có nghĩa là tổng số 458752/1024 = 448 chủ đề đồng thời có sẵn: khá nhiều. Hệ thống khác có thể không có nhiều CPU / lõi / luồng, v.v., do đó có mặc định thấp hơn pid_max
.
kernel_pid_max
trong của bạnsysctl.conf
bởi vì nó nên đượckernel.pid_max
.