当前位置:首页 > 话题广场 > 攻略专题 > 游戏问答

0.seg是什么文件看这里!如何在 Linux 服务器上设置 ulimit 和文件描述符数限制

在生产环境中遇到打开文件数这类的挑战如今已是司空见惯的事情了。

-- Shashidhar Soppin(作者)

简介:在生产环境中遇到打开文件数这类的挑战如今已是司空见惯的事情了。因为许多应用程序是基于 Java 和 Apache 的,安装和配置它们可能会导致打开过多的文件(文件描述符)。如果打开的文件描述符超过了默认设置的限制,就可能会面临访问控制问题,受阻于打开文件的挑战。许多生产环境因此而陷入停滞状态。

幸运的是,在基于 Linux 的服务器上,都有 ulimit 命令,通过它可以查看、设置、获取文件打开的状态和配置详情。此命令配备了许多选项,通过这些组合可以设置打开文件的数量。下面逐个命令用示例做了详细说明。

查看任何 Linux 系统中当前打开文件数的限制

要在 Linux 服务器上得到打开文件数的限制,请执行以下命令,

[root@ubuntu ~]# cat /proc/sys/fs/file-max 146013

上面的数字表明用户可以在每个用户登录会话中打开 ‘146013’ 个文件。

[root@CentOS ~]# cat /proc/sys/fs/file-max 149219 [root@debian ~]# cat /proc/sys/fs/file-max 73906

这清楚地表明,各个 Linux 操作系统具有不同的打开文件数限制。这基于各自系统中运行的依赖关系和应用程序。

ulimit 命令

顾名思义,ulimit(用户限制)用于显示和设置登录用户的资源限制。当我们使用 -a 选项运行 ulimit 命令时,它将打印登录用户的所有资源限制。现在让我们在 Ubuntu/Debian 和 CentOS 系统上运行 ulimit -a,

Ubuntu / Debian 系统

shashi@Ubuntu ~}$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 5731 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 5731 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited

CentOS 系统

shashi@centos ~}$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 5901 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 5901 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited

正如我们可以在这里看到的,不同的操作系统具有不同的限制设置。所有这些限制都可以使用 ulimit 命令进行配置/更改。

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

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

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

shashi@Ubuntu ~}$ ulimit -Hn 1048576 shashi@Ubuntu ~}$ ulimit -Sn 1024

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

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

root@ubuntu~]# sysctl -w = 100000

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

root@ubuntu~]# vi /etc = 100000

保存文件并退出。

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

root@ubuntu~]# sysctl -p

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

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

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

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

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

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

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

示例 limi 如下所示,

root@ubuntu~]# cat /etc/security

Limits-conf-linux-part1

Limits-conf-linux-part2

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

# hard limit for max opened files for linuxtechi user linuxtechi hard nofile 4096 # soft limit for max opened files for linuxtechi user linuxtechi soft nofile 1024 # hard limit for max number of process for oracle user oracle hard nproc 8096 # soft limit for max number of process for oracle user oracle soft nproc 4096

保存文件并退出。

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

# hard limit for max opened files for sysadmin group @sysadmin hard nofile 4096 # soft limit for max opened files for sysadmin group @sysadmin soft nofile 1024

验证新的更改是否生效:

~]# su - linuxtechi ~]$ ulimit -n -H 4096 ~]$ ulimit -n -S 1024 ~]# su - oracle ~]$ ulimit -H -u 8096 ~]$ ulimit -S -u 4096

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

结尾

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


via:

作者: Shashidhar Soppin 选题: lujun9972 译者: zgj1024 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出

点击“了解更多”可访问文内链接

1.《0.seg是什么文件看这里!如何在 Linux 服务器上设置 ulimit 和文件描述符数限制》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《0.seg是什么文件看这里!如何在 Linux 服务器上设置 ulimit 和文件描述符数限制》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/2187712.html

上一篇

06f5怎么样?总结很全面速看!以前的滑雪都弱爆了 这才是滑雪 人伞合一

下一篇

0.01成语是什么?我来告诉你答案你不知道的奇葩成语

关于0.seg是什么文件,你需要知道这些Detection学习之二-pascal_voc和coco数据读取

关于0.seg是什么文件,你需要知道这些Detection学习之二-pascal_voc和coco数据读取

0.seg是什么文件相关介绍,pascal_voc和coco数据集是深度学习中最常用的两个数据集,提供了包括检测、分割、人体关键点等多个不同任务的标注数据。然而,两个数据集在存储架构和标注数据存储上存在比较大的差异,下面分别对两个...

关于0.seg是什么文件,你需要知道这些如何在 Linux 服务器上设置 ulimit 和文件描述符数限制

关于0.seg是什么文件,你需要知道这些如何在 Linux 服务器上设置 ulimit 和文件描述符数限制

0.seg是什么文件相关介绍,(9500.163.com) 在生产环境中遇到打开文件数这类的挑战如今已是司空见惯的事情了。 达到当天最大量API KEY 超过次数限制 -- Shashidhar Soppin(作者) 简介:在生产...

0.seg是什么文件?终于找到答案了数码管的参数选型,应用,问题分析,以及编程思路讲解

0.seg是什么文件?终于找到答案了数码管的参数选型,应用,问题分析,以及编程思路讲解

0.seg是什么文件相关介绍,数码管,只要是电子开发设计工程师,一定是会有了解或者使用过这类元件,它可以满足电子产品的 数字,特定字符,或部分字母的显示,是实现机与人的信息交互的重要途径。 达到当天最大量API KEY 超过次数限...

0.seg是什么文件?我来告诉你答案如何在 Linux 服务器上设置 ulimit 和文件描述符数限制

0.seg是什么文件?我来告诉你答案如何在 Linux 服务器上设置 ulimit 和文件描述符数限制

0.seg是什么文件相关介绍,在生产环境中遇到打开的文件数等挑战现在是司空见惯的事情。 -- Shashidhar Soppin(作者) 简介:在生产环境中遇到打开文件数这类的挑战如今已是司空见惯的事情了。因为许多应用程序是基于...

关于0.seg是什么文件,你需要知道这些数码管的参数选型,应用,问题分析,以及编程思路讲解

关于0.seg是什么文件,你需要知道这些数码管的参数选型,应用,问题分析,以及编程思路讲解

0.seg是什么文件相关介绍,数码管,只要是电子开发设计工程师,都需要理解或使用这些组件来满足电子产品的数字、特定字符、或字符标记的一部分,是实现机器与人的信息交互的重要方法。 所以了解透彻这个器件,对于后期开发设计设计过程有很大...

0.seg是什么文件看这里!数码管的参数选型,应用,问题分析,以及编程思路讲解

0.seg是什么文件看这里!数码管的参数选型,应用,问题分析,以及编程思路讲解

0.seg是什么文件相关介绍,数码管,只要是电子开发设计工程师,都需要理解或使用这些组件来满足电子产品的数字、特定字符、或字符标记的一部分,是实现机器与人的信息交互的重要方法。 所以了解透彻这个器件,对于后期开发设计设计过程有很大...

0.seg是什么文件?我来告诉你答案数码管的参数选型,应用,问题分析,以及编程思路讲解

0.seg是什么文件?我来告诉你答案数码管的参数选型,应用,问题分析,以及编程思路讲解

0.seg是什么文件相关介绍,数码管,只要是电子开发设计工程师,都需要理解或使用这些组件来满足电子产品的数字、特定字符、或字符标记的一部分,是实现机器与人的信息交互的重要方法。 所以了解透彻这个器件,对于后期开发设计设计过程有很大...

0.seg是什么文件?终于找到答案了如何在 Linux 服务器上设置 ulimit 和文件描述符数限制

0.seg是什么文件?终于找到答案了如何在 Linux 服务器上设置 ulimit 和文件描述符数限制

0.seg是什么文件相关介绍,在生产环境中遇到打开的文件数等挑战现在是司空见惯的事情。 -- Shashidhar Soppin(作者) 简介:在生产环境中遇到打开文件数这类的挑战如今已是司空见惯的事情了。因为许多应用程序是基于...