zoukankan      html  css  js  c++  java
  • [ERROR] [Errno 24] Too many open files

    系统资源限制和 ulimit 命令

    操作系统提供限制可使用资源量的方式。为每个用户设置限制,但限制分别适用于为该用户运行的每个进程。 这些限制可能会影响 Java™ 应用程序,例如,如果某些限制太低,系统可能无法生成完整的 Java 转储文件。

    限制可以是限制或限制。由 root 用户设置硬限制。虽然其他用户可以降低硬限制,但只有 root 用户可以增加硬限制。其他用户可以设置和更改软限制,但软限制不能超过硬限制。要查看当前限制,请输入以下命令:
    ulimit -Xa
    其中,X 为 H 表示硬限制,或 S 表示软限制。如果没有为 X 指定值,那么将显示软限制。

    设置临时限制

    使用 ulimit 命令设置仅适用于您当前会话的限制。如果在脚本中使用此命令,设置将在脚本运行时期间应用。这些设置也适用于通过该脚本或从第一个脚本调用的其他脚本创建的进程。命令格式如下:
    ulimit -[H|S]limit_name limit_value
    其中,H 表示硬限制,S 表示软限制。如果您忽略此参数,那么将设置软限制。以下示例将软文件大小限制设置为 unlimited:
    ulimit -f unlimited

    存储限制设置

    使用 /etc/security/limits.conf 文件存储 ulimit 设置。 如果您正在设置硬限制和软限制,请首先在文件中设置硬限制。设置可以是缺省值或特定于个别用户或组。 应该由系统管理员对此文件进行更改。

    查看针对您的操作系统版本的文档,以获取有关如何编辑此文件的指示信息,因为不同版本之间的步骤可能会不同。此文件自身可能将指示信息包含在注释部分中。

    启动新的登录 shell 程序(例如 bash -l)或者注销并重新登录回系统时,文件更改将生效。
    注:init 命令及其子进程不使用限制文件中指定的限制。操作系统启动后,init 命令运行 inittab 文件中或 init.d 目录的脚本中所列的命令。这些操作将创建 init 命令的子进程。 此时,初始化过程尚未装入限制文件中的设置。只有当启动登录终端会话或用户登录到系统时,才会装入这些设置。如果向 inittab 文件或 init.d 目录中的脚本添加命令并且希望此命令使用特定的用户限制,那么必须根据需要包含用于设置用户限制值的操作。

    可用限制

    不同操作系统版本之间可以设置的限制有所不同;查看您的版本所对应的文档以获取详细信息。

    注:
    在 Red Hat Enterprise Linux 的一些版本中,由于 Red Hat Enterprise Linux V5 中的已知问题,您不能将 nofile 限制设置为 unlimited。有关更多信息,请参阅 Red Hat Bugzilla。Linux 的其他版本可能没有此限制。 如果您尝试使用 ulimit 命令将此限制设置为 unlimited,那么将显示以下错误,并且现有值不更改:
    [root] # ulimit -n unlimited
    bash: ulimit: open files: cannot modify limit: Operation not permitted
    如果在 /etc/security/limits.conf 文件中将此限制设置为 unlimited,那么限制将重置为 0。该设置可防止相关用户或组创建新进程。如果用户为 root 用户,那么系统将因无法创建新进程而缓慢关闭。 如果发生此情况,必须使用恢复磁盘重置值。
  • 相关阅读:
    【算法】动态规划
    【设计模式】单例模式
    Python 多元线性回归
    Python 线性回归
    惩罚项
    局部常数拟合方法 例
    微分方程是用来做什么的?
    线性回归与梯度下降法
    k近邻法
    逻辑回归与梯度下降法
  • 原文地址:https://www.cnblogs.com/ceason/p/14542112.html
Copyright © 2011-2022 走看看