灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:1389回复:0

修改Linux文件句柄数限制

楼主#
更多 发布于:2012-08-27 14:55

因为linux系统里都是以文件来表示的,所以在做搞并发的web系统时,修改文件句柄限制那是必须的。



查看某个进程使用了的文件句柄数

# sudo ps -ef | grep java

root      1663     1  0 02:37 ?        00:00:43 /opt/bitnami/java/bin/java

从结果中可得知进程的pid,然后根据pid查看该进程当前使用的文件句柄数

#sudo ls /proc/1663/fd | wc -l

1022

发现句柄数一直就停留在1022,同时top查看发现load持续增高。于是先查看了下当前进程的句柄数限制。

#sudo cat /proc/1663/limits | grep "files"

Max open files            1024                1024                files

发现限制卡在这了,于是修改/etc/sysctl.conf文件,添加一行如下:

fs.file-max=30720

保存。并执行

#sudo sysctl -p

然后再查看就发现已经改过来了。

google发现linux系统里有两种文件句柄限制,一种是系统级的,一种是用户级的。

修改系统级的:  

#echo "30720" > /proc/sys/fs/file-max

修改用户级的:

#sudo vi /etc/security/limits.conf

增加如下行:

* soft nofile 2048

* hard nofile 32768

星号表示任何用户,soft/hard表示软限制、硬限制。修改/etc/pam.d/login文件指定使用PAM

session required /lib/security/pam_limits.so

不过需要注意的是系统是32位还是64位,若是64位的那就是/lib64/security/pam_limits.so

上面的修改后,reboot,再次查看

#ulimit -n

30720

修改成功。



喜欢0 评分0
游客

返回顶部