国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Linux服務器 > 正文

Linux創(chuàng)建進程達到65535的方法

2024-09-05 23:04:50
字體:
供稿:網(wǎng)友

Linux上創(chuàng)建進程據(jù)說消耗很少,這個一直是Linux的特點,于是就專門測試Linux創(chuàng)建進程的極限,測試代碼如下:

//fork.c#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#define MAXPROCESS 65535#define SLEEPTIME 60int main(int argc, char **argv) {  pid_t pid;  int count = 0;  int maxprocess = MAXPROCESS;  if (argc == 2) {    maxprocess = atoi(argv[1]);   }  for (count = 0; count < maxprocess; count++) {    pid = fork();    if (pid < 0) {      perror("fork error");      exit(1);    } else if (pid == 0) {      printf("child %d start/n", count);      sleep(SLEEPTIME);      printf("child %d end/n", count);      exit(0);    }     printf("parent:create %d child/n", count);  }  for (count = 0; count < MAXPROCESS; count++) {    wait();  }  exit(0);}

這段代碼是不斷創(chuàng)建子進程,默認是創(chuàng)建65535個進程,如果無法創(chuàng)建,就打印出錯誤。

測試代碼是我新建的一個blue帳戶進行運行測試,為了讓進程盡可能創(chuàng)建多的進程,首先要設(shè)置blue帳戶創(chuàng)建進程數(shù)的硬限制

使用root帳戶修改/etc/security/limits.conf文件,加入一下行:

blue             hard    nproc          65535

然后為blue帳戶設(shè)置創(chuàng)建進程的軟限制,在終端執(zhí)行如下代碼:

ulimit -u 65535

到了這里,雖然我們設(shè)置blue帳戶創(chuàng)建進程數(shù)的硬限制和軟限制都是65535,但是我們還不能使用blue帳戶創(chuàng)建65535個進程,我們在Linux還需要設(shè)置內(nèi)核參數(shù)kernel.pid_max,這個參數(shù)我默認安裝都是32768,所以即使使用root帳戶,卻不設(shè)置這個內(nèi)核參數(shù),整個系統(tǒng)最多可以創(chuàng)建的進程數(shù)就是32768,所以我們需要進行如下設(shè)置:

sysctl -w  kernel.pid_max=65535

備注:如果是使用root帳戶執(zhí)行程序,是不需要設(shè)置資源的硬限制和軟限制,但是還是需要設(shè)置進程pid最大值的內(nèi)核參數(shù),才可以創(chuàng)建65535個進程。

接著在同一終端切換為blue帳戶:

su blue

編譯和執(zhí)行測試代碼:

gcc fork.c -o fork./fork

我的虛擬機Linux內(nèi)存是512M,在創(chuàng)建6千多個進程時,程序運行得很慢,通過vmstat命令觀察,發(fā)現(xiàn)swap內(nèi)存的置入置出很頻繁,可以判斷是由于內(nèi)存不足,使用虛擬內(nèi)存,導致頻繁的IO操作,讓測試代碼變得很慢,所以創(chuàng)建過多進程時,系統(tǒng)的內(nèi)存是重要衡量的一個方面。

后來我把測試代碼放到一臺配置比較好的至強服務器測試,內(nèi)存是8G,在創(chuàng)建接近4W個進程時,程序的運行也到了瓶頸,依然是內(nèi)存的瓶頸。

測試代碼中,創(chuàng)建的子進程,占用的內(nèi)存相當小,實際使用中,只可能比測試代碼創(chuàng)建的進程使用更多的內(nèi)存,所以相應的,同樣配置的機器,能創(chuàng)建的可用進程應該是更少的。

總結(jié)

以上所述是小編給大家介紹的Linux創(chuàng)建進程達到65535的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識閱讀請移步到服務器教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 吉安市| 琼中| 遂昌县| 安乡县| 铁力市| 肥城市| 呼图壁县| 汉沽区| 凤凰县| 景宁| 龙游县| 驻马店市| 镇巴县| 越西县| 南投县| 清涧县| 建阳市| 兴隆县| 长海县| 仙游县| 枣庄市| 会理县| 陆丰市| 根河市| 巴青县| 浦江县| 井冈山市| 东莞市| 兖州市| 九龙县| 深圳市| 南岸区| 广汉市| 明星| 怀安县| 汉中市| 大邑县| 贵阳市| 泸溪县| 崇文区| 河西区|