• linux最大允许的文件描述符open files数nofile修改


    open file resource limit 是linux中process可以打开的文件句柄数量。增加这个数值需要调整两个配置:


    第一步,
    修改系统最大允许的文件描述符


    查看当前的设置:


    $
    cat /proc/sys/fs/file-max


    2390251


    或者


    $
    sysctl -a


    fs.file-max
    = 2390251


    该系统是CentOS
    5.x x64版本,安装好后没有做过优化设定, 2390251是其默认值


    $
    ulimit -n


    1024


    如果
    /proc/sys/fs/file-max小于我们要设定的句柄数量,可以通过:


    $echo
    "2390251" > /proc/sys/fs/file-max


    或者修改
    /etc/sysctl.conf,在文件中修改fs.file-max的值(没有就创建一条)


    修改完后可以通过


    $
    sysctl -p


    使设置生效


    2.
    文件描述符修改后,需要调整针对用户或者组(user/group)的限制


    /etc/security/limits.conf,文件格式为


    <domain>
    <type>  <item>  <value>


    其中<type>为
    soft或者hard,有些应用会自动把soft限制提升到hard限制,如java,至于nginx,没有看到相关的文档。


    如:


    *
    - nofile  8192


    表示对所有的用户,文件描述符可以用到
    8192, 或者


    user_abc
    - nofile  8192


    表示对用户
    user_abc,文件描述符可以用到 8192


    3.
    有些情况 /etc/security/limits.conf并不会发生作用,如在 init.d 中启用的进程,或者daemons运行的进程。


    此时比较有效的办法是在init的script中,明确命令
    ulimit -n xxxxx


    除了在系统中进行设定 nofile(fs.file-max) 值外,可以在 nginx.conf
    中指定worker_process可以使用的nofile值,如:


    #user  nobody;

    worker_processes  3;

    #error_log  logs/error.log;

    #error_log  logs/error.log  notice;

    error_log  logs/error.log  info;

    pid        /var/run/nginx.pid;

    worker_rlimit_nofile    8192;

    events {

          use epoll;

          worker_connections  8192;

    }

    重新加载nginx配置,使新设定生效。
  • 相关阅读:
    Docker 第二篇--安装Docker
    Docker 第一篇--初识docker
    VirtualBox 桥接上网方式的配置
    .NET服务器端按钮在客户端点击后禁用,服务端执行完事件后再次激活
    SignalR2.1部署IIS服务器无法推送消息
    SQL去掉某个字段重复记录
    动态生成WebService代理类
    openoffice启动服务并将office文件转换为pdf文件
    Hibernate 核心接口和工作机制
    linux下Mongodb集群搭建:分片+副本集
  • 原文地址:https://www.cnblogs.com/zhuhongbao/p/3179743.html
Copyright © 2020-2023  润新知