Linux最大打开文件数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux最大打开文件数相关的知识,希望对你有一定的参考价值。

Linux下每个用户、用户的每个进程能够同时打开的文件句柄数量是有限制的。不用的文件句柄要关上。

一、查看最大打开文件数

  1、查看系统及最大打开文件数

    cat /proc/sys/fs/file-max         //该文件指定了可以分配的文件句柄的最大数目

    技术分享

  2、查看当前用户最大打开文件数  

    1.   # ulimit -Hn //查看硬限制
    2.   # ulimit -Sn //查看软限制

       技术分享

  3、查看所有进程的文件打开数
        lsof |wc -l
    查看某个进程打开的文件数
       lsof -p pid |wc -l
 

二、设置最大打开文件数

1、系统及的设置

    1.   # vi /etc/sysctl.conf
    2.   fs.file-max = 100000
    3.   立即生效  sysctl -p 

2、用户级设置

  1. vi /etc/security/limits.conf
  2. limits.conf的格式如下:

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

    <domain> :可以指定单个用户名、@组名、所有用户(*)

    type:有 soft(指的是当前系统生效的设置值),hard(表明系统中所能设定的最大值)和 -(表明同时设置了 soft 和 hard 的值)

    要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。

 

 

基本的系统设置命令--ulimit

语  法:ulimit [-aHS][-c <core文件上 限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数 目>][-p <缓冲区大小>][-s <堆叠大小>][-t <CPU时间>][-u <程序数 目>][-v <虚拟内存大小>]

补充说明:ulimit为shell内建指令,可用来控制shell执行程序的资源。

参  数:
  -a  显示目前资源限制的设定。 
  -c <core文件上限>  设定core文件的最大值,单位为区块。 
  -d <数据节区大小>  程序数据节区的最大值,单位为KB。 
  -f <文件大小>  shell所能建立的最大文件,单位为区块。 
  -H  设定资源的硬性限制,也就是管理员所设下的限制。 
  -m <内存大小>  指定可使用内存的上限,单位为KB。 
  -n <文件数目>  指定同一时间最多可开启的文件数。 
  -p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。 
  -s <堆叠大小>  指定堆叠的上限,单位为KB。 
  -S  设定资源的弹性限制。 
  -t <CPU时间>  指定CPU使用时间的上限,单位为秒。 
  -u <程序数目>  用户最多可开启的程序数目。 
  -v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB。

 

以上是关于Linux最大打开文件数的主要内容,如果未能解决你的问题,请参考以下文章

测试Linux最大打开文件数参数

Linux 打开文件数

Linux 下最大文件数等限制

Linux 下应用程序最大打开文件数的理解和修改

Linux 下应用程序最大打开文件数的理解和修改

linux 打开文件数too many open files解决方法