为linux主机增加file description

在benchmarked写的服务器的时候就遇到了too many file open 这个报错。

由于遇到过很多次了,所以知道应该是单机fd打满了。

 

首先来看看 机器最多支持多少fd

cat /proc/sys/fs/file-max

通过上面的命令可以看到机器现在一个session 最多可以支持打开多少fd。我的机器上现在能看到的最大值是6w多个

 

同时我们来看看现在本机现在开了多少fd。

ulimit -n

 

这个命令会返回目前返回最大支持的单session fd

看更多的信息可以使用

ulimit -a

 

然后现在重头戏来了,我们可以临时指定使用的最大的fd上限 也就是我们通过cat /proc/sys/fs/file-max命令看到的值

sysctl -w fs.file-max=100000

 

我们也可以通过修改配置文件来永久改变该机器最大fd上限

vi /etc/sysctl.conf

在最后一行加上

fs.file-max = 65536

即可,logout and login 之后,使用syscrl -p 查看最大fd上限的改变效果。

 

现在我们需要修改实际的fd限制,也就是我们使用ulimit -n 看到的那个值

vi /etc/security/limits.conf

然后增加配置

* soft     nproc          65535
* hard     nproc          65535
* soft     nofile         65535
* hard     nofile         65535

同样login logout。这里第一列是用途,如果我们只允许httpd使用那么多fd的话,那么我们可以在这里设置成httpd就行了。

 

 

Reference:

https://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/ Linux Increase The Maximum Number Of Open Files / File Descriptors (FD)

 

posted @ 2017-02-24 23:44  piperck  阅读(540)  评论(0编辑  收藏  举报