• 修改ubuntu服务器fs文件最大打开数


    起因

    在对项目进行压测的时候,请求异常 java.net.SocketException: socket closed,查看nginx代理服务器的日志。tail -f -n500 /var/log/nginx/error.log 显示 文件打开数太多socket() failed (24: Too many open files) while connecting to upstream
    在这里插入图片描述

    解决

    通过查看linux系统限制命令ulimit 命令来查看系统文件限制

    ulimit -Hn
    ulimit -Sn
    // 结果显示:1024,当前登陆用户不是root用户。
    
    • 1
    • 2
    • 3

    ulimit -Hn 是一个命令行命令,可以用来查看当前系统用户所能打开的最大文件描述符数量的硬限制。文件描述符是操作系统为了表示和操作文件而提供的一种机制,每个文件描述符都是一个非负整数,用来标识打开的文件或者管道。
    -H 参数表示显示硬限制(hard limit),即系统管理员为当前用户设置的最大限制值。-n 参数表示显示文件描述符数量。通常情况下,硬限制是软限制(soft limit)的上限,也就是可以修改的最大。
    -S 参数表示显示软限制(soft limit),即当前用户可以打开的文件描述符数量的默认值。-n 参数表示显示文件描述符数量。
    软限制是当前用户可以打开的文件描述符数量的默认值,用户可以通过 ulimit -n 命令来查看和修改软限制。通常情况下,硬限制是软限制的上限,也就是可以修改的最大值。
    如果想要修改软限制,一般可以使用 ulimit -n 命令进行修改。需要注意的是,软限制不能超过硬限制。如果软限制超过了硬限制,那么修改软限制时会失败。

    编辑文件 /etc/security/limits.conf 修改用户打开文件数上限

    * soft nofile 1048576
    * hard nofile 1048576
    
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    ⚠️ nginx服务器可以打开的文件数量受你操作系统的限制,编辑 /etc/sysctl.conf

    fs.file-max = 6553560
    
    • 1

    在这里插入图片描述
    最后 刷新文件配置

    sysctl -p
    
    • 1

    当再次通过命令 ulimit -Sn 查看用户可以打开上限时,结果就是自己修改后的值。
    ⚠️ 如果是修改前的会话窗口 查看结果依然是 1024,可以重新打开一个窗口查看。

    参考

  • 相关阅读:
    如何进行高效会议
    使用Docker本地安装部署Drawio绘图工具并实现公网访问
    查看 OceanBase 执行计划
    秦九韶算法c++
    使用 Dockerfile 定制镜像
    【深度装机】深度U盘装机后黑屏闪光标
    unity 动画结束 后处理事件
    mysql为什么使用B+树
    做接口测试如何上次文件
    【谢希尔 计算机网络】第1章 计算机网络概述
  • 原文地址:https://blog.csdn.net/Small_StarOne/article/details/133746529