天天看点

知识点查缺补漏贴03:单机最大进程数,线程数和Socket连接数

前言:

  参加unix/linux相关高级研发职位时,是否经常会被文档,单机允许最大进程数、线程数和socket连接数,而你却感到束手无措呢?本文给你一个最为详细的答案。

一、最大进程数

  运行linux ulimit -a指令,我们可以看到:max user processes =1024 运行结构如下图所示:

 二、最大线程数

<code>3660</code>

 看到最大线程数的限制了吗?3660

三、最大socket连接数

关于最大socket连接数,因为一个socket连接需要占用一个文件句柄,所以支持打开的连接数就是文件数句柄数:open files (-n) 1024

四、一个进程允许启动的最大线程数

  linux环境,一个进程分配的虚拟内存空间是4g,可用2g,每个线程stack空间为10m,2048/10  = 200,所以一般的单进程能开通的线程数也就可以确定了。约为200个。

五、ulimit命令详解

参  数:

-a  显示目前资源限制的设定。

-c &lt;core文件上限&gt;  设定core文件的最大值,单位为区块。

-d &lt;数据节区大小&gt;  程序数据节区的最大值,单位为kb。

-f &lt;文件大小&gt;  shell所能建立的最大文件,单位为区块。

-h  设定资源的硬性限制,也就是管理员所设下的限制。

-m &lt;内存大小&gt;  指定可使用内存的上限,单位为kb。

-n &lt;文件数目&gt;  指定同一时间最多可开启的文件数。

-p &lt;缓冲区大小&gt;  指定管道缓冲区的大小,单位512字节。

-s &lt;堆叠大小&gt;  指定堆叠的上限,单位为kb。

-s  设定资源的弹性限制。

-t &lt;cpu时间&gt;  指定cpu使用时间的上限,单位为秒。

-u &lt;程序数目&gt;  用户最多可开启的程序数目。

-v &lt;虚拟内存大小&gt;  指定可使用的虚拟内存上限,单位为kb。

继续阅读