一、检查系统版本是否手工升级
关于lsb_release -a和/etc/issue显示的发行版本号不同,原因只有一个:系统内核手动升级了
对于高并发高http连接的应用程序例如www或Java,会遇上Socket/File: Can’t open so many files或too many open files的问题,最好通过使用ulimit -n xx 修改每个进程可打开的文件数,缺省值是1024
二、如何增大用户打开最大进程数
ulimit -a 来显示当前的各种用户进程限制
系统原始文件
ulimit命令有分软硬设置,加-H硬限制是实际的限制,加-S软限制是warnning限制,只会做出warning;
grep '^*' /etc/security/limits.conf
* soft 65535
* hard 65535
修改方法:
方法一:
1.在/etc/rc.local中增加ulimit -SHn 65535
编辑rc.local文件增加一行ulimit -SHn 65535,或者直接执行命令:echo "ulimit -SHn 65535">>/etc/rc.local (此时不会立即生效,需重启服务器,执行步骤2则可使之立即生效)
2.在/etc/profile中增加ulimit -SHn 65535
编辑profile文件增加一行ulimit -SHn 65535,或者直接执行命令:echo "ulimit -SHn 65535">>/etc/profile,然后source /etc/profile让参数即时生效
方法二:修改limits.conf配置文件生效
nofile(可打开的文件描述符的最大数)和nproc(单个用户可用的最大进程数量)
修改后执行命令查看:grep '^*' /etc/security/limits.conf,显示如下:
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
退出用户终端重新登录,使配置文件生效
详情请查看:http://blog.51cto.com/manfred12/1541274
附:
ulimit用于shell启动进程所占用的资源
参数介绍:
-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