• linux修改文件句柄数量


    说明:

    liunx中文件句柄有两种,一种是用户级的,一种是系统级的

    文件句柄限制,就是规定的单个进程能够打开的最大文件句柄数量(Socket连接也算在里面,默认大小1024)

    1 用户级的修改

      1.1 用户级修改临时生效方法

        重启后失效
        ulimit 命令身是分软限制和硬限制,加-H就是硬限制,加-S就是软限制。默认显示的是软限制,如果运行ulimit 命令修改时没有加上-H或-S,就是两个参数一起改变。硬限制就是实际的限制,而软限制是警告限制,它只会给出警告。

    ulimit -SHn 10000

      

      1.2 用户级修改永久有效方式

    vi /etc/security/limits.conf

        修改/etc/security/limits.conf文件,添加如下内容:

        * soft nofile 204800  
        * hard nofile 204800
    
        * soft nproc 204800
        * hard nproc 204800

        或者分别执行如下四个命令:

      echo "* soft nofile 204800"  >> /etc/security/limits.conf
        echo "* hard nofile 204800"  >> /etc/security/limits.conf
    
        echo "* soft nproc 204800"  >> /etc/security/limits.conf
        echo "* hard nproc 204800 "  >> /etc/security/limits.conf

        vi修改和echo最终效果一样,都是修改该文件(* 表示所用的用户)

        1.3 用户级永久生效方式修改后,重启服务器

    reboot

        1.4 查看用户级修改是否生效

    ulimit -a

    2 系统级修改

        其实上面的修改都是对一个进程打开的文件句柄数量的限制,我们还需要设置系统的总限制才可以。

        假如,我们设置进程打开的文件句柄数是1024 ,但是系统总线制才500,所以所有进程最多能打开文件句柄数量500。从这里我们可以看出只设置进程的打开文件句柄的数量是不行的。所以需要修改系统的总限制才可以。

      2.1  临时修改方式

    echo  6553560 > /proc/sys/fs/file-max

      2.2  永久生效方式

    vi /etc/sysctl.conf

        修改/etc/sysctl.conf 文件,加入:

    fs.file-max=65535

        

        或者执行如下修改命令:

    echo   fs.file-max = 6553560  >> /etc/sysctl.conf

        使用vi修改文件和使用echo修改文件,最终效果都一样。

      2.3 系统级永久生效方式修改后,重启服务器,才能生效

    reboot

      2.4 查看系统级文件句柄修改,是否生效

    sudo sysctl -p
  • 相关阅读:
    Javascript函数式编程要掌握的知识点讲解
    任务
    怎么添加项目到SVN上面
    随便写一点最近开发遇到的问题和解决方法 大部分关于laravel和php
    laravel 将数组转化成字符串 再把字符串转化成数组
    laravel 配置了自己的域名以后, localhost 无法访问 404 not found 的解决方法
    实习日记15
    php接收post过来的 json数据 例子
    数据库如何让自增id重置
    C#连接MySQL数据库
  • 原文地址:https://www.cnblogs.com/whwywzhj/p/14144349.html
Copyright © 2020-2023  润新知