欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux創(chuàng)建進(jìn)程達(dá)到65535的方法

 更新時(shí)間:2018年07月12日 10:52:13   作者:ggjucheng  
這篇文章主要介紹了Linux創(chuàng)建進(jìn)程達(dá)到65535的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

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

//fork.c
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define MAXPROCESS 65535
#define SLEEPTIME 60
int 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)建子進(jìn)程,默認(rèn)是創(chuàng)建65535個(gè)進(jìn)程,如果無(wú)法創(chuàng)建,就打印出錯(cuò)誤。

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

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

blue             hard    nproc          65535

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

ulimit -u 65535

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

sysctl -w  kernel.pid_max=65535

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

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

su blue

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

gcc fork.c -o fork
./fork

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

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

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

總結(jié)

以上所述是小編給大家介紹的Linux創(chuàng)建進(jìn)程達(dá)到65535的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Linux運(yùn)維基礎(chǔ)httpd靜態(tài)網(wǎng)頁(yè)教程

    Linux運(yùn)維基礎(chǔ)httpd靜態(tài)網(wǎng)頁(yè)教程

    這篇文章主要介紹了Linux運(yùn)維基礎(chǔ)中怎樣制作httpd靜態(tài)網(wǎng)頁(yè),附含源碼及圖片示例,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝進(jìn)步
    2021-09-09
  • Linux下使用使用socket實(shí)現(xiàn)TCP服務(wù)端的示例代碼

    Linux下使用使用socket實(shí)現(xiàn)TCP服務(wù)端的示例代碼

    套接字(socket)是 Linux 下的一種進(jìn)程間通信機(jī)制(socket IPC),它不僅支持同一主機(jī)的不同進(jìn)程間通信,還支持跨網(wǎng)絡(luò)的不同主機(jī)的進(jìn)程間通信,本文介紹了 Linux 下使用 socket 接口實(shí)現(xiàn) TCP 服務(wù)端的示例程序,需要的朋友可以參考下
    2024-03-03
  • linux下用戶程序同內(nèi)核通信詳解(netlink機(jī)制)

    linux下用戶程序同內(nèi)核通信詳解(netlink機(jī)制)

    這篇文章主要介紹了linux下用戶程序同內(nèi)核通信詳解(netlink機(jī)制),涉及netlink,內(nèi)核模塊,用戶程序的介紹等相關(guān)內(nèi)容,小編覺得還是挺不錯(cuò)的,這里分享給大家,需要的朋友可以參考下
    2018-01-01
  • apache虛擬主機(jī)三種配置方式小結(jié)

    apache虛擬主機(jī)三種配置方式小結(jié)

    這篇文章主要介紹了apache虛擬主機(jī)三種配置方式小結(jié),需要的朋友可以參考下
    2016-01-01
  • Linux中crontab輸出重定向不生效問題的解決方法

    Linux中crontab輸出重定向不生效問題的解決方法

    crontab命令相信大家都不陌生,下面這篇文章主要給大家介紹了關(guān)于Linux中crontab輸出重定向不生效問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • LINUX查看進(jìn)程的4種方法(小結(jié))

    LINUX查看進(jìn)程的4種方法(小結(jié))

    這篇文章主要介紹了LINUX查看進(jìn)程的4種方法(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 在CentOS中搭建Hadoop的詳細(xì)步驟

    在CentOS中搭建Hadoop的詳細(xì)步驟

    這篇文章主要介紹了在CentOS中搭建Hadoop的詳細(xì)步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-03-03
  • Easypanel免費(fèi)的VPS主機(jī)面板 可跨平臺(tái)Linux和Windows

    Easypanel免費(fèi)的VPS主機(jī)面板 可跨平臺(tái)Linux和Windows

    Easypanel是一款免費(fèi)的功能強(qiáng)大集開通虛擬主機(jī),ftp空間,數(shù)據(jù)庫(kù)等功能為一體的主機(jī)控制面板,具備跨平臺(tái)(windows,linux),安全穩(wěn)定、操作簡(jiǎn)便等特點(diǎn),感興趣的小伙伴們可以關(guān)注一下
    2017-07-07
  • 詳解Linux系統(tǒng)中網(wǎng)卡MAC地址克隆方法

    詳解Linux系統(tǒng)中網(wǎng)卡MAC地址克隆方法

    本篇文章主要介紹了詳解Linux系統(tǒng)中網(wǎng)卡MAC地址克隆方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-06-06
  • centos yum php 7.x 無(wú)需刪除升級(jí)的方法

    centos yum php 7.x 無(wú)需刪除升級(jí)的方法

    下面小編就為大家分享一篇centos yum php 7.x 無(wú)需刪除升級(jí)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-03-03

最新評(píng)論