报错:too many open files处理

[size=xx-large]前言[/size]
在做压力测试的时候,可能会经常报错:too many open files
因此我们有两种修改方式:临时修改、永久修改
linux 默认打开文件数linux 默认打开文件数为1024个,通过ulimit -a 可以查看open files

实验环境
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.7 (Final)
Release: 6.7
Codename: Final
[size=xx-large]临时修改[/size]
修改这个限制可以使用ulimit -SHn 65536

[size=xx-large]永久修改[/size]
1. /etc/pam.d/login 添加pam_limits.so (有时候系统默认添加,也可以写so的绝对路径)
session required pam_limits.so

2. /etc/security/limits.conf 添加
* soft nofile 65536
* hard nofile 65536
语法如下:www - nofile 1006154
www 是一个用户,如果是想所有用户生效的话换成 * ,设置的数值与硬件配置有关,别设置太大了。

3. 修改 /etc/rc.local 添加
echo 8061540 > /proc/sys/fs/file-max
(此处的数据按照您实际需要调节)
此法解决的实际问题是:在高负载下squid,mysql 会发生 打开的文件数超过系统的进程限制,造成系统瓶颈。

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

linux文件描述符open file descriptors与open files的区别
参考文章
http://blog.itpub.net/15480802/viewspace-734062/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值