修改linux单个进程最大允许的文件句柄

3743阅读 0评论2011-05-12 intentness
分类:

首先可以使ulimit -n命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。
方法一:
修改/etc/security/limits.conf

里面有很详细的注释,比如

* soft nofile 32768
* hard nofile 65536

就可以将文件句柄限制统一改成软32768,硬65536.配置文件最前面的是指domain,设置为星号代表全局,另外你也可以针对不同的用户做出不同的限制

注意.这个当中的硬限制是实际的限制,而软限制,是warnning限制,只会做出warning.其实ulimit命令本身就有分软硬设置,加-H就是硬,加-S就是软
默认显示的是软限制,如果运行ulimit命令修改的时候没有加上的话,就是两个参数一起改变.

生效

修改完重新登录就可以见到.(我的系统是Centos5.1.修改了,重新登录后就立刻生效.可以用ulimit -a 查看确认.)



方法二: 摘至http://blog.csdn.net/zhaiqi618/archive/2010/05/22/5616998.aspx

1. #vi /etc/profile,增加ulimit -HSn 65536
2. #vi /etc/security/limits.conf,为你的用户增加
    user soft nofile 38192
    user hard nofile 65536
3. 重启Shell即可
4. ulimit -a 查看设置是否成功。
5. 查看系统总限制的命令:
   #cat /proc/sys/fs/file-max
6. 查看整个系统目前使用的文件句柄数量命令:
   #cat /proc/sys/fs/file-nr
7. 查找文件句柄问题的时候,还有一个很实用的程序lsof,可以很方便看到某个进程开了哪些句柄:
   #lsof -p pid
8. 某个进程开了几个句柄:
   #lsof -p pid |wc –l
9. 也可以看到某个目录 /文件被什么进程占用了,显示已打开该目录或文件的所有进程信息:
   #lsof path/filename

上一篇:mysql导文件的命令行
下一篇:跳转