天天看点

linux 打开文件数 too many open files解决方法 查看每个用户最大允许打开文件数量 查看当前系统打开的文件数量 查看某一进程的打开文件数量 设置open files数值方法 永久设置方法

在运行某些命令或者 tomcat等服务器持续运行 一段时间后可能遇到   too many open files。

出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值。

ulimit -a

linux 打开文件数 too many open files解决方法 查看每个用户最大允许打开文件数量 查看当前系统打开的文件数量 查看某一进程的打开文件数量 设置open files数值方法 永久设置方法

其中 open files (-n) 8192 表示每个用户最大允许打开的文件数量是8192 。 默认是1024。1024很容易不够用。

lsof | wc -l  

watch "lsof | wc -l"  

lsof只能以root权限执行。

在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。

lsof -p pid | wc -l  

lsof -p 1234 | wc -l  

ulimit -n 2048

这样就可以把当前用户的最大允许打开文件数量设置为2048了,但这种设置方法在重启后会还原为默认值。

ulimit -n命令非root用户只能设置到4096。

想要设置到8192需要sudo权限或者root用户。

linux 打开文件数 too many open files解决方法 查看每个用户最大允许打开文件数量 查看当前系统打开的文件数量 查看某一进程的打开文件数量 设置open files数值方法 永久设置方法

要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:

session required /lib/security/pam_limits.so

vim /etc/security/limits.conf  

在最后加入  

* soft nofile 4096  

* hard nofile 4096  

或者只加入

 * - nofile 8192

最前的 * 表示所有用户,可根据需要设置某一用户,例如

fdipzone soft nofile 8192  

fdipzone hard nofile 8192  

注意"nofile"项有两个可能的限制措施。就是项下的hard和soft。 要使修改过得最大打开文件数生效,必须对这两种限制进行设定。 如果使用"-"字符设定, 则hard和soft设定会同时被设定。 

改完后注销一下就能生效。

如果是puty等工具远程登录的  重新登录就生效了。不需要重启。

<a href="http://blog.itpub.net/27144762/viewspace-1306185/" target="_blank">linux limits.conf配置说明</a>

先看这个文件的简介,有英文基础的应该明白这资源限制到底限制了什么!!

limits.conf的格式如下:

type:有soft,hard以及-,soft指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft的限制不能比hard限制高。用-就表明同时设置了soft和hard的值。

resource:

core - 限制内核文件的大小

date - 最大数据大小

fsize - 最大文件大小

memlock - 最大锁定内存地址空间

nofile - 打开文件的最大数目

rss - 最大持久设置大小

stack - 最大栈大小

cpu - 以分钟为单位的最多CPU时间

noproc - 进程的最大数目

as - 地址空间限制

maxlogins - 此用户允许登录的最大数目

要使limits.conf文件配置生效,必须要确保 pam_limits.so文件被加入到启动文件中。

查看 /etc/pam.d/login 文件中有:(没有就添加)

注意:

好多人设置了limitc.conf没有测试,测试后发现没有生效

原因大多数为:

32位系统 session required /lib/security/pam_limits.so

64位系统 session required /lib64/security/pam_limits.so

本文转自leonardos51CTO博客,原文链接:<b>http://blog.51cto.com/leomars/1895489</b> ,如需转载请自行联系原作者

继续阅读