Linux最大打开文件数

编辑
  • 文档创建者:doreen0813
  • 浏览次数:1422次
  • 编辑次数:3次
  • 最近更新:doreen0813 于 2019-07-22
  • 1、描述

    在使用Linux服务器布署FineBI时,有时会出现报错too many open files;此问题是因为linux系统本身默认系统应用最大打开的文件数为1024,BI执行时会读取保存在本地的数据,有些情况BI打开的文件数会超过这个限制,因此需要手动改掉linux系统的最大打开文件数。该修改在不同情况下会涉及到3个关键值。 

    2、三个关键值

    1)limit中nofile值:

    nofile值是单进程的最大打开文件数,也是我们的修改目标;

    2)nr_open的值:

    该值是单个进程可分配的最大文件数,通常默认值为1024*1024=1048576;

    3)file-max的值:

    该值是系统内核一共可以打开的最大值,默认值是185745;

    从上面的解释可以看出,一般情况下,nofile的值不允许超过nr_open和file-max的值。因此在修改nofile时要考虑是否超过以上两个值的情况:

    1. 当要修改的nofile值(最大打开文件数)未超过nr_open和file-max两个值时,直接修改nofile值即可;

    2. 当要修改的nofile值(最大打开文件数)超过nr_open和file-max两个值时,不仅要修改nofile的值为最大打开文件数,还要修改nr_open和file-max的值满足大于nofile值。

    3、修改方法

    1)limit中nofile值

    修改方法采用直接编辑文件的方式进行。在文件/etc/security/limits.conf中最后添加如下代码(其中50000即为修改的nofile值):

    * soft nofile 50000 * hard nofile 50000

    退出保存,并执行source命令使文件生效即可。

    source /etc/security/limits.conf

    2)nr_open和file-max的值

    当要修改的最大打开文件数超过nr_open和file-max时,就需要改动该值,将该值提高。其修改方式如下:

    在文件/etc/sysctl.conf中加入如下代码:

    fs.nr_open=1200000 fs.file-max=200000

    退出保存,并执行source命令使文件生效即可。

    source /etc/sysctl.conf

    注:Linux的内核参数nr_open只有在内核版本是2.6.25之后的版本才可设置。查看内核版本使用命令“uname -a”。


    附件列表


    主题: 专题总结
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]