• 配置Linux文件句柄数


    查看句柄

    Linux操作系统中文件句柄数的限制默认是1024(一个进程最多可以接受1024个socket连接),在生产环境系统中这是远远不够的,所以很多应用都需要解除文件句柄数的限制。

    通过调用ulimit命令可以看到一个进程能够打开的最大文件句柄数量:

    ulimit -n
    

    ulimit命令是用来显示和修改当前用户进程的基础限制命令,-n选项用于引用或设置当前的文件句柄数量的限制值。

    调整句柄数

    对于高并发、高负载的应用,必须调整这个系统参数,以适应并发处理大量连接的应用场景。可以通过ulimit来设置这两个参数,方法如下:

    ulimit -n 65536
    

    普通用户通过ulimit命令可将软性极限值更改到硬性极限值的最大设置值。如果要更改硬性极限值,必须拥有root用户权限。

    ulimit -SHn 65536
    

    选项-S表示软性极限值,-H表示硬性极限值。硬性极限值是实际的限制
    软性极限值则是系统发出警告(Warning)的极限值,超过这个极限值,内核会发出警告。

    通过命令只能修改当前用户环境的一些基础限制,仅在当前用户环境有效。一旦断开用户会话,或者说用户退出Linux,它的数值就又变回系统默认的1024了。并且,系统重启后,句柄数量会恢复为默认值。

    配置句柄数

    编辑Linux的极限配置文件/etc/security/limits.conf来做到。修改此文件,加入如下内容:

    注意:/etc/security/limits.conf里的值不能超过/proc/sys/fs/file-max ,/proc/sys/fs/file-max里的值默认为系统内存换算成kb后的10%。比如128G,大概是1300多万。

    1. * soft nofile 65536
    2. * hard nofile 65536
    3. * soft nproc 4096
    4. * hard nproc 4096

    soft :软性极限
    hard:表示硬性极限
    nofile : 一个进程最多能打开的的文件数
    nproc : 一个用户最多能创建的进程数

  • 相关阅读:
    Java当中的队列
    常见的数据增强方式
    redis集群某主节点宕机,其从节点未自动接管(故障转移未生效)问题解决
    Android 12,调用系统库libft2.so 遇到的各种问题记录
    Dockerfile学习
    数组c++介绍
    高校部署房产管理系统可实现那些目标?
    模态框确认按钮的保存
    C++ Reference: Standard C++ Library reference: C Library: cwchar: wctob
    [附源码]计算机毕业设计JAVAjapm青篮汇篮球培训系统
  • 原文地址:https://blog.csdn.net/chuixue24/article/details/126847417