鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

任务采集失败,最大文件描述符数量受限

现象描述

下发采集任务,任务采集失败,失败原因为:最大文件描述符数量受限。如需继续使用,请尝试修改文件描述符数量。

可能原因

采集任务进程所需的文件描述符数量大于该进程所拥有的最大文件描述符数量,导致采集失败。

处理步骤

请谨慎修改最大文件描述符的数量值,可能会带来以下风险:

  1. 系统资源消耗:若最大文件描述符数量设置过大,系统资源消耗也会随之增加,可能会导致系统变慢或崩溃。
  2. 安全问题:若最大文件描述符数量设置过大,可能会导致系统受到攻击(因攻击者可以利用更多的文件描述符来占用系统资源或执行恶意操作)。
  3. 应用程序兼容性问题:有些应用程序可能无法处理大量的文件描述符,若最大文件描述符数量设置过大,可能会导致某些应用程序崩溃或无法正常工作。

本机节点root用户修改:

  1. 查看gunicorn_framework.service所在目录。
    1
    systemctl status gunicorn_framework.service
    
    图1 服务详情
  2. 新增配置。
    1
    vi /usr/lib/systemd/system/gunicorn_framework.service
    

    在“[Service]”区域中新增LimitNOFILE参数。

    图2 新增配置项

    “Esc”,输入:wq!后,按“Enter”保存退出。

  3. 重启gunicorn_framework.service服务。
    1
    2
    systemctl daemon-reload
    systemctl restart gunicorn_framework.service
    

本机节点普通用户修改:

  1. 查看当前用户文件描述符的软限制和硬限制。
    • 软限制
      ulimit -n  #输出软限制
    • 硬限制
      ulimit -Hn #输出硬限制
  2. 若软限制、硬限制的文件描述符数量不同,将软限制数量设置为硬限制数量。
    1. 编辑shell配置文件。
      vim ~/.bashrc
    2. 添加以下内容,将软限制数量设置为当前硬限制数量。
      ulimit -Sn $(ulimit -Hn)

      “Esc”,输入:wq!后,按“Enter”保存并退出。

    3. 加载配置文件。
      source ~/.bashrc
  3. (可选)将软限制提升到硬限制后依旧出现问题,则需要root用户协助修改系统文件。
    1. 进入配置文件。
      vim /etc/security/limits.conf
    2. 添加以下内容。
      test001          hard    nofile          1048576

      test001为普通用户名,请根据实际替换,按“Esc”,输入:wq!后,按“Enter”保存并退出。

    3. 设置完成后普通用户需重新登录才能使配置生效。