在unix系统下,每个进程能打开的文件数由核心参数NOFILES设定。这个值一般是1024。但是许多shell使用了标准输入、标准输出、标准错误(描述符1、2、3),所以单个进程实际能打开的文件数为1024-3=1021个。如果没有确实的必要,最好不要去修改这个参数。
单个目录下的文件数由核心参数MAX_INODE设定,一般最大值是64000。但实际上一个目录下的文件数达到远低于上限的一定数量时,系统性能就已经大受影响。因此需要定时清理目录下的文件。

上面所说的核心参数的名称和数值在不同的平台下可能有所差异,在使用的时候最好查一下手册。

在Linux下,我们使用ulimit -n命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。

对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象squid、mysql、java等单进程处理大量请求的应用来说就有点捉襟见肘了。如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示。如何知道当前进程打开了多少个文件句柄呢?下面一段小脚本可以帮你查看:lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more

在系统访问高峰时间以root用户执行上面的脚本,可能出现的结果如下:# lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more    131 24204   57 24244   57 24231   56 24264

其中第一行是打开的文件句柄数量,第二行是进程号。得到进程号后,我们可以通过ps命令得到进程的详细内容。ps -aef|grep 24204 mysql  24204 24162 99 16:15 ?    00:24:25 /usr/sbin/mysqld

哦,原来是mysql进程打开最多文件句柄数量。但是他目前只打开了131个文件句柄数量,远远底于系统默认值1024。

但是如果系统并发特别大,尤其是squid服务器,很有可能会超过1024。这时候就必须要调整系统参数,以适应应用变化。Linux有硬性限制和软性限制。可以通过ulimit来设定这两个参数。方法如下,以root用户运行以下命令:ulimit -HSn 4096

以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。个人觉得最好不要超过4096,毕竟打开的文件句柄数越多响应时间肯定会越慢。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最后。(findsun提出的办法比较合理)

http://bbs.chinaunix.net/thread-639115-1-1.html

http://www.txwb.com/Article/serverHelp/Linux/200804/11508.html

Process pr = new Process();//声明一个 进程 类对象 pr.StartInfo.FileName = E://Program Files//Tencent//QQ//QQ.exe;//指定运行的程序,我的QQ的物理路径。 pr.Start();//运行QQ 还可以简单点:Process的静态方法Start(); Process.Start(String fileName);(+4重载) //filiName 是你要运行的程序名,是物理路径 关于TCP服务器最大并发连接数有一种误解就是“因为端口号上限为65535,所以TCP服务器理论上的可承载的最大并发连接数也是65535”。 先说结论:对于TCP服务端 进程 来说,他可以同时连接的客户端数量并不受限于可用端口号。并发连接数受限于linux可 打开 文件 数,这个数是可以配置的,可以非常大,所以实际上受限于系统性能。 现在做服务器开发不加上高并发根本没脸出门,所以为了以后吹水被别人怼“天天提高并发,你自己实现的最高并发是多少”的时候能义正言辞的怼回去,趁着元旦在家没事决定自己写个demo搞一搞。 这个测试主要是想搞明白Linux下哪些参数配置限制了连接数的最大值,上限是多少。 文章来源:http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/     假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个人,在系统资源无限制的情况下,这 10 个用户同时 打开 了 500 个文档,而假设每个文档的大小有 10M,这时系统的内存资源就会受到巨大的挑战。     而实际应用的环境要比这种假设复杂的多,例... -H选项和-S选项分别表示对给定资源的硬限制(hard limit)和软限制(soft limit)进行设置。 硬限制(hard limit)一旦被设置以后就不能被非root用户修改,软限制(soft limit)可以增长达到硬限制(hard limit)。 如果既没有指定-H选项也没有指定-S选项,那么硬限制(hard limit)和软限制(soft limit)都会被设置。 limit的值可以是一个数值,也可以是一些特定的值,比如:hard,so linux 系统中单个 进程 的最大线程数有其最大的限制 PTHREAD_THREADS_MAX这个限制可以在 /usr/include/bits/local_lim.h 中查看对 linuxthreads 这个值一般是 1024,对于 nptl 则没有硬性的限制,仅仅受限于系统的资源这个系统的资源主要就是线程的 stack 所占用的内存,用 ulimit -s 可以查看默认的线程栈大... ################################################################################ 一个 进程 ,能 打开 的最大 文件 个数 ################################################################################ 打开 文件 是什么意思? linux最大 打开 文件 句柄数,即 打开 文件 数最大限制,就是规定的单个 进程 能够 打开 的最大 文件 句柄数量(Socket连接也算在里面,默认大小1024) liunx中 文件 句柄有两个限制,一种是用户级的,一种是系统级的(也叫内核级) 系统级的最大限制:   cat /proc/sys/fs/file-max 用户级的最大限制   ulimit -n(默认是1024,向阿里云华为云这种云主机一般是65535)  附ulimit 参数说明: 查看某个 进程 的最大 打开 文件 数和当前 打开 文件 数 先找到该 进程 进程 如何增加Linux系统最大 文件 打开 数目呢?查看系统最大可 打开 文件 数以下命令查看操作系统级最多可 打开 文件 数,fd数目$ cat /proc/sys/fs/file-max我用ubuntu 16输出:573738怎么调整系统最大可 打开 文件 数# sysctl -w fs.file-max=1000000需要用root用户执行以上命令,设最大为一百万。但在命令行上修改了这个配置,会在下一次操作系统重启后重... https://blog.csdn.net/wowocpp/article/details/86673886?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase cat /