ulimit -a 用来查看系统对用户的各种资源限制(ulimit 是linux上的一个命令).
1.先查看系统内核允许文件打开数量的上限:
#sysctl -n -e fs.file-max
在Centos7上默认值为586443
2.使用ulimit -a可以查看当前的最大打开文件数.
Centos7默认值是:
Contos7 ulimit修改系统打开文件限制_第1张图片
当服务器负载较大时,很容易出现"too many open files"的错误.然后调高此值就可以了.
临时修改:
#ulimit -SHn 65535 (n代表修改值多少,S指soft,H指hard) 重启失效;
永久修改:
方法一:
#vim /etc/security/limits.conf再最后一行添加:


  • soft nofile 51200
  • hard nofile 51200
    #End of file

    soft nofile表示软限制,hard nofile表示硬限制,软限制要小于等于硬限制;
    断开连接立即生效;
    只有修改了系统的open files,才能修改进程的open files.我是为了修改nginx服务的open files;
    #vim /lib/systemd/system/nginx.service
    一定要在[Service]下添加LimitNOFILE=20000,如图下所示:
    Contos7 ulimit修改系统打开文件限制_第2张图片
    #systemctl daemon-reload
    #systemctl restart nginx
    检查验证:
    #ps -ef | grep nginx
    将得出的master PID xx 带入下面
    #cat /proc/xx/limits
    查看Max open files
    方法二:
    #vim /etc/profile 进入编辑模式在最后一行添加:
    Contos7 ulimit修改系统打开文件限制
    重启生效;
    查看所有进程的文件打开数
    lsof | wc -l