我的系统:RedHat企业7 64位 内存6G ulimit -a查看用于shell启动进程所占用的资源默认设置 一.最大进程数 1.使用命令ulimit -u查看软限制,我的为7807 /etc/security/limits.conf查看硬限制,内核参数kernel.pid_max也做了限制 2.系统用pid_t表示进程号,那么最大的进程数当然也不能超过pid_t的类型 查看最大进程数
cat /proc/sys/kernel/pid_max#查系统支持的最大进程数,一般会很大,相当于理论值3.创建一个新进程会消耗系统资源(主要是内存),经测试,在创建6000多个进程时,程序运行的很缓慢,通过vmstat命令看到,swap内存置入置出频繁,可以判断是由于内存不足,使用虚拟内存,所创建过多进程时,系统内存必须要加以衡量。
代码验证:
#include#include#includeusing namespace std;int main(){ pid_t pid; int i=0; while(1) { pid = fork(); if(pid == 0) break; else if(pid == -1) { perror("create error"); break; } cout