解决linux too many files问题

在做对LINUX服务器进行并发压力测试的时候,当并发数超过1024时,系统提示:Too many open files,导致此问题的原因是LINUX系统限制了文件最大打开数,如下是解决此问题的办法.

RHEL下增大文件描述符的修改方法:

1. 查看当前设置

ulimit -n

(默认是1024)

2. 查看系统可接受的最大打开文件数(一般默认已足够,不用修改)

# cat /proc/sys/fs/file-max

(默认可能是372998,已足够)

如果小于你期望的值,可以改大:

# echo 327998 > /proc/sys/fs/file-max

或者写入 /etc/sysctl.conf 中,以便重启也能生效:
fs.file-max = 327998

3. 修改/etc/security/limits.conf文件,设置用户最大打开文件数
#<domain>      <type> <item>         <value>
 
* - nofile 2048    (添加这一行)


这样即设置系统每个用户的最大打开文件数为2048。 注:要重启操作系统后才会生效修改。如想立即生效需要执行:

ulimit -n 2048 。但此命令执行后,如果重启操作系统会失效。如想使重启后不失效则要按如上办法修改文件。

注意 nofile 参数在 type 类型上有2个可能的选项:hard 和 soft ,这两个值都需要设置,“-”代表同时设置这2个值为后面的数字。

hard limit 只是作为 soft limit 的上限,soft limit 才是你设置的系统当前限制。当你设置 hard limit 后,你以后设置的 soft limit 的值就只能小于 hard limit 。普通用户可以降低 hard limit 的值,但是不能提高它,只有 root 用户才能提高 hard limit。

4. 退出shell登陆,重新登陆一次即生效(运行ulimit -n 检查)

5. 已经启动的进程,可能需要关闭后重新启动才生效。



connect: cannot assign requested address解决

  1. vi /etc/sysctl.conf   


添加下面一行: 

引用
net.ipv4.ip_local_port_range = 1024 65535


然后执行: 

Java代码   收藏代码
  1. sysctl -p  


意思是告诉linux可以使用的端口是从1024到65535,不用编译内核就可以生效。 

Linux默认的可用端口范围是: 

引用
[root@PerfTestApp3 ~]# sysctl -a|grep ip_local_port_range 
net.ipv4.ip_local_port_range = 32768    61000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值