添加一下内容,表示paas用户可以打开文件数为65535
paas soft nofile 65535
paas hard nofile 65535
1.可以不指定paas用户,直接使用*,表示所有用户
2.可以不指定soft hard ,直接使用-表示所有
3.nofile表示可以打开的文件句柄数,nproc表示可以打开的进程数(包括线程,线程属于轻量级进程)
二、修改用户可以打开的进程数,使用/etc/security/limits.conf
添加以下内容:
对于普通用户,优先级更高的是
/etc/security/limits.d/20-nproc.conf(低版本系统,如centos6)
/etc/security/limits.d/90-nproc.conf(高版本系统,如centos7)
并发socket连接数的多少决定于系统资源的多少,没有一个常值的.在实际开发或者linux系统管理中也会根据需要进行相应的设置.1.一般来说每一个网络连接,都会建立相应的socket句柄,同时每个连接也会有标准输入输出等基本的文件文件句柄,而且每一个socket连接都是进行文件 *** 作的,因此连接数决定于系统资源.
2.Linux上一般可以通过ulimit来进行相应的资源限制,默认能打开的文件描述符自己可以查看.如下图所示:
3.ulimit的命令格式:ulimit [-acdfHlmnpsStvw] [size]
参数说明:
-H 设置硬资源限制.
-S 设置软资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes
-u <程序数目> 用户最多可开启的程序数目
百度百科:
在文件I/O中,要从一个文件读取数据,应用程序首先要调用 *** 作 系统函数 并传送文件名,并选一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句柄(file handle),该文件句柄对于打开的文件是唯一的识别依据。要从文件中读取一块数据,应用程序需要调用函数ReadFile,并将文件句柄在内存中的地址和要拷贝的字节数传送给 *** 作系统。当完成任务后,再通过调用系统函数来关闭该文件。
linux下文件句柄是有限制的,默认并不会太高,一般都是1024。linux指令ulimit -n可以查看文件句柄限制。
ulimit -a 用来显示当前的各种用户进程限制
ulimit -n 查看当前用户默认的最大文件句柄数
lsof |wc -l 查看所有进程的文件打开数
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 查看当前进程打开了多少句柄数,注意第一列是句柄数,第二列是进程id
硬限制是实际的限制,而软限制,是warnning限制,只会做出warning,可以通过ulimit来设定这两个参数,用root用户执行ulimit -HSn 4096(H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)