加入收藏 | 设为首页 | 会员中心 | 我要投稿 宜春站长网 (https://www.0795zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

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

发布时间:2019-07-10 02:57:46 所属栏目:Windows 来源:Shashidhar Soppin
导读:在生产环境中遇到打开文件数这类的挑战如今已是司空见惯的事情了。因为许多应用程序是基于 Java 和 Apache 的,安装和配置它们可能会导致打开过多的文件(文件描述符)。如果打开的文件描述符超过了默认设置的限制,就可能会面临访问控制问题,受阻于打开文

要显示单个资源限制,可以在 ulimit 命令中传递特定的参数,下面列出了一些参数:

  • ulimit -n –> 显示打开文件数限制
  • ulimit -c –> 显示核心转储文件大小
  • umilit -u –> 显示登录用户的最大用户进程数限制
  • ulimit -f –> 显示用户可以拥有的最大文件大小
  • umilit -m –> 显示登录用户的最大内存大小
  • ulimit -v –> 显示最大内存大小限制

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

  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 和文件描述符数限制

Limits-conf-linux-part1

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

Limits-conf-linux-part2假设我们要为 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. # hard limit for max number of process for oracle user 
  6. oracle           hard    nproc          8096 
  7. # soft limit for max number of process for oracle user 
  8. oracle           soft    nproc          4096 

保存文件并退出。

(编辑:宜春站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读