49彩票集团首页-49彩票集团官网|官网首页

49彩票集团让大家拥有最好的账号使用功能,49彩票集团是为大家带来更加方便的使用途径,是因为在49彩票集团娱乐的玩家们越来越多,发展成为最受欢迎的网上体育娱乐公司。

修改linux系统最大展开文件数,文件系统最大可张

2019-10-06 作者:计算机网络   |   浏览(147)

cat /proc/sys/fs/file-nr
3391 969 52427
| | |
| | |
| | maximum open file descriptors
| total free allocated file descriptors
total allocated file descriptors
(the number of file descriptors allocated since boot)

回答一、

CentOS最大文件描述符限制更改

原文:

  系统级的限制:/proc/sys/fs/file-max中设定了系统最大能打开的文件数。 
    查看该值可以用如下方式: 
      [root@#panda ~]# cat /proc/sys/fs/file-max
      655351
      [root@#panda ~]# sysctl fs.file-max
      fs.file-max = 655351
      [root@#panda ~]# 
    修改该值可以用如下方式: 
      [root@#panda ~]# echo 655300 > /proc/sys/fs/file-max
      [root@#panda ~]# sysctl fs.file-max
      fs.file-max = 655300
      [root@#panda ~]# sysctl -w fs.file-max=655350
      fs.file-max = 655350
      [root@#panda ~]# sysctl fs.file-max
      fs.file-max = 655350
      [root@#panda ~]# 
    上面方式修改的值会立即生效但是机器重启后又会失效。永久生效的修改可以用下面的方式: 
      [root@#panda etc]# echo fs.file-max=524288 >> /etc/sysctl.conf
      [root@#panda etc]# sysctl fs.file-max
      fs.file-max = 655350
      [root@#panda etc]#49彩票集团, sysctl -p
      fs.file-max = 524288
      [root@#panda etc]# sysctl fs.file-max
      fs.file-max = 524288
      [root@#panda etc]# 
    执行了sysctl -p 命令之后 sysctl.conf中的修改才能立即生效。 
    还有一个问题是file-max最大能设置多大呢?当然你可以把它往大了设,但是同时打开的文件描述符越多,内存开销就越大。那怎样设置一个合理的上限呢?一个经验算法是 256个fd 需4M内存。例如8G内存,8*1024/4*256=524288。

  用户级的限制:/etc/security/limits.conf 可以添加用户使用资源的限制 
    设置格式为: 
      username|@groupname type resource limit 
      username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。 
      type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比hard 限制高。用 - 就表明同时设置了 soft 和 hard 的值 
      resource: 为资源类型有多种。 nofile为最大打开文件数。 
      例如:* -  nofile 655350   将所有用户的最大打开文件数的soft和hard都设为655350
    对/etc/security/limit.conf的修改会在新的会话期中生效

  会话级的限制:ulimit 命令查看和设置当前会话期的资源限制

    ulimit -Sn 查看会话期最大文件描述符soft限制 
    ulimit -Hn 查看会话期最大文件描述符hard限制,hard限制是soft的上限。 
    ulimit -Sn 2046 限制当前会话期内能打开的文件数为2046(如果其中一个进程打开了2046个,其他进程再打文件都将失败)。 
    ulimit -Sn 查看到的默认1024,用ulimit所做的修改在会话期结束后都将失效。那如何让对会话级的资源限制设置永久生效呢?可以把ulimit 命令放到会话建立时初始化的过程中执行,这样每次会话期就都自动执行命令修改设置了。例如在用户目录下的.bashrc 中加入一行 ulimit -Sn 2046,要对所有用户都生效则可在/etc/profile中加入一行命令 ulimit -Sn 2046。容易被忽略的一点是,如果我们设置了用户级的限制,新建的会话期的资源限制的初值(ulimit -Sn 查看到的)是从用户级的限制值(/etc/security/limit.conf中设置的值)继承过来的。

进程级的管理:进程可以调用getrlimit和setrlimit来设置和修改对应资源的限制。 
  例如:  
        rlimit tmp={4095,4096}; 
      setrlimit(RLIMIT_NOFILE,&tmp);    //设置进程打开文件数的软硬限制分别为4095,4096

总结:单个进程最大能使用的文件描述符是由系统限制,用户限制,会话期限制,进程限制值中最小的那个决定的。如果我们在一台机器上部署了自己的网络服务,我们只需按下面步骤修改就可以了: 
  1. 计算 fdmax = 物理内存大小(m为单位) / 4 * 256  假设内存为8G,fdmax=524288 
  2. 执行命令: echo fs.file-max=524288 >> /etc/sysctl.conf
  3. 执行命令: sysctl -p  
  4. 执行命令: echo  * soft nofile  524286 >> /etc/security/limits.conf 
  5. 执行命令: echo  * hard nofile 524287 >> /etc/security/limits.conf 

       调整方法2:

       直接把ulimit SHn 524287 命令加入/etc/rc.local,用以设置每次开机启动时配置生效,命令如下。

        cat>>/etc/rc.local/<<EOF

        #-S use the 'soft' resource limit

       #-H  use the 'hard' resource limit

       #-n the maximum number of open file descriptors

       ulimit -HSn  65535

       #-s the maximum  stack size

      ulimit  -s 65535

      EOF

  5. 结束当前会话期
  6. 启动新的会话 
  7.启动我们的服务   

修改linux系统最大打开文件数

[root@lxadmin nginx]# cat /proc/sys/fs/file-max
8192
文件系统最大可打开文件数
[root@lxadmin nginx]# ulimit -n
1024
程序限制只能打开1024个文件
使用[root@lxadmin nginx]# ulimit -n 8192调整一下
或者永久调整打开文件数 可在启动文件/etc/rc.d/rc.local末尾添加(在/etc/sysctl.conf末尾添加fs.file-max=xxx无效)

当前设置最大打开文件数可以通过如下命令查看。

ulimit -n 8192

ulimit -n

回答二、

这个数字说明了一个普通用户能够在一个单独会话中所能打开最大的文件数目。注意。如果是root,以下操作不能使ulimit -n的输出增加。因为用户root用户不受这个ulimit限制。只有普通用户才会受这个限制。

Linux内核有时会报告“Too many open files”,起因是file-max默认值(8096)太小。要解决这个问题,可以root身份执行下列命令(或将它们加入/etc/rcS.d/*下的init脚本。)

为了提高最大打开文件数到默认值1024以上, 需要在系统上修改2个地方。 在这个案例中, 我们将最大打开文件数增加到2048。 所有的步骤需要root用户操作。 普通用户需要重新登录才能使设置生效。

# echo "65536"  > /proc/sys/fs/file-max  # 适用于2.2和2.4版内核
# echo "131072" > /proc/sys/fs/inode-max # 仅适用于2.2版内核

  1. 按照最大打开文件数量的需求设置系统, 并且通过检查/proc/sys/fs/file-max文件来确认最大打开文件数已经被正确设置。

回答三、

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

办法是修改操作系统的打开文件数量限制,方法如下:

本文由49彩票集团发布于计算机网络,转载请注明出处:修改linux系统最大展开文件数,文件系统最大可张

关键词: