Centos 修改系统打开最大文件数限制 too many open files的解决方法

linux 系统中,当运行的进程打开了过多是文件,超出了系统默认的最大打开文件数的限制的时候,就会出现Too many open files的错误,这时候,不用紧张,只要把系统的配置修改一下就ok了。

操作如下:

1.打开配置文件:

vim /etc/security/limits.d/20-nproc.conf   (Ctentos 6.5 是 90-nproc.conf

# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

*          soft    nproc     4096
root       soft    nproc     unlimited

2.打开配置文件:

vim /etc/security/limits.conf  
  1. #*               soft    core            0  
  2. #*               hard    rss             10000  
  3. #@student        hard    nproc           20  
  4. #@faculty        soft    nproc           20  
  5. #@faculty        hard    nproc           50  
  6. #ftp             hard    nproc           0  
  7. #@student        -       maxlogins       4  
  8.   *              -       nproc           102400  
  9.   *              -       nofile          102400  

最后的“102400”是修改最大打开文件数的限制数值。这个自己看着需要填写吧。不过设置为“102400”之后,就自己而言,很多情况都不会再出现Too many open files的错误了。这个可以纳为装完系统之后的系统优化之一吧。

3. 使用命令  cat /proc/sys/fs/file-max

echo 8061540 > /proc/sys/fs/file-max  65536, 这个时候知道为啥出现偶发的异常了,当前系统使用的文件数和最大数相隔很近

直接增大一倍,这样可以马上生效,但是如果操作系统重启,又会失效

如果需要永久生效,修改/etc/sysctl.conf文件,后面加上fs.file-max = 131072,执行sysctl -p生效

所以当系统中出现too many open files时候有2个地方都需要看


(此处的数据按照您实际需要调节)

此法解决的实际问题是:在高负载下squid,mysql 会发生 打开的文件数超过系统的进程限制,造成系统瓶颈。

你可能感兴趣的:(ulimit)