设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

如何在Linux服务器上设置ulimit和文件描述符数限制(2)

发布时间:2019-07-10 00:32 所属栏目:117 来源:Shashidhar Soppin
导读:使用以下命令检查登录用户打开文件数量的硬限制和软限制: shashi@Ubuntu ~}$ ulimit -Hn 1048576 shashi@Ubuntu ~}$ ulimit -Sn 1024 如何修复达到最大文件数限制的问题? 让我们假设我们的 Linux 服务器已经达到

使用以下命令检查登录用户打开文件数量的硬限制和软限制:

  1. shashi@Ubuntu ~}$ ulimit -Hn
  2. 1048576
  3. shashi@Ubuntu ~}$ ulimit -Sn
  4. 1024

如何修复达到最大文件数限制的问题?

让我们假设我们的 Linux 服务器已经达到了打开文件的最大数量限制,并希望在系统范围扩展该限制,例如,我们希望将 100000 设置为打开文件数量的限制。

  1. root@ubuntu~]# sysctl -w fs.file-max=100000
  2. fs.file-max = 100000

上述更改将在下次重启之前有效,因此要使这些更改在重启后仍存在,请编辑文件 /etc/sysctl.conf 并添加相同的参数,

  1. root@ubuntu~]# vi /etc/sysctl.conf
  2. fs.file-max = 100000

保存文件并退出。

运行下面命令,使上述更改立即生效,而无需注销和重新启动。

  1. root@ubuntu~]# sysctl -p

现在验证新的更改是否生效。

  1. root@ubuntu~]# cat /proc/sys/fs/file-max
  2. 100000

使用以下命令找出当前正在使用的文件描述符数量:

  1. [root@ansible ~]# more /proc/sys/fs/file-nr
  2. 1216 0 100000

注意:命令 sysctl -p 用于在不重新启动和注销的情况下提交更改。

通过 limit.conf 文件设置用户级资源限制

/etc/sysctl.conf 文件用于设置系统范围的资源限制,但如果要为 Oracle、MariaDB 和 Apache 等特定用户设置资源限制,则可以通过 /etc/security/limits.conf 文件去实现。

示例 limits.conf 如下所示,

  1. root@ubuntu~]# cat /etc/security/limits.conf

如何在Linux服务器上设置ulimit和文件描述符数限制

如何在Linux服务器上设置ulimit和文件描述符数限制

假设我们要为 linuxtechi 用户设置打开文件数量的硬限制和软限制,而对于 oracle 用户设置打开进程数量的硬限制和软限制,编辑文件 /etc/security/limits.conf 并添加以下行:

  1. # hard limit for max opened files for linuxtechi user
  2. linuxtechi hard nofile 4096
  3. # soft limit for max opened files for linuxtechi user
  4. linuxtechi soft nofile 1024
  5.  
  6. # hard limit for max number of process for oracle user
  7. oracle hard nproc 8096
  8. # soft limit for max number of process for oracle user
  9. oracle soft nproc 4096

保存文件并退出。

注意: 如果你想对一个组而不是用户进行资源限制,那么也可以通过 limits.conf 文件,输入 @<组名> 代替用户名,其余项都是相同的,示例如下,

  1. # hard limit for max opened files for sysadmin group
  2. @sysadmin hard nofile 4096
  3. # soft limit for max opened files for sysadmin group
  4. @sysadmin soft nofile 1024

验证新的更改是否生效:

  1. ~]# su - linuxtechi
  2. ~]$ ulimit -n -H
  3. 4096
  4. ~]$ ulimit -n -S
  5. 1024
  6.  
  7. ~]# su - oracle
  8. ~]$ ulimit -H -u
  9. 8096
  10. ~]$ ulimit -S -u
  11. 4096

注:其他主要使用的命令是 lsof,可用于找出“当前打开了多少个文件”,这命令对管理员非常有帮助。

结尾

正如在介绍部分提到的,ulimit 命令非常强大,可以帮助用户配置并确保应用程序安装更加流畅而没有任何瓶颈。此命令有助于修复基于 Linux 的服务器中的(打开)大量文件的限制。


(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读