Marged Asked: 2017-12-14 00:50:18 +0800 CST2017-12-14 00:50:18 +0800 CST 2017-12-14 00:50:18 +0800 CST 尽管我更新了 sysctl,但可能的连接数少于 1000 772 我在我的 CentOS 7.2 机器上运行 c1000k,它告诉我 connections: 921 error: Too many open files 因此,我将其更改/etc/sysctl.conf为包含以下内容: fs.file-max = 2097152 但即使在重新启动后,我仍然遇到相同的限制。ulimit -Sn并分别ulimit -Hn打印。10244096 centos sysctl 1 个回答 Voted Best Answer ottomeister 2017-12-15T15:19:49+08:002017-12-15T15:19:49+08:00 有效(软)1024 描述符 ulimit 是进程的总数,包括用于非连接目的的描述符。显然,该进程使用了大约 100 个描述符来处理其他事情,只剩下 921 个用于连接。 lsof -p <process-id>将向您展示如何使用描述符。 要允许更多描述符,请在启动进程之前提高软限制。如果你从 bash 运行它,那将是: ulimit -Sn 2048 将其提高到 2048 以用于将来的命令。要将软限制提高到允许的最大值(硬限制,在本例中为 4096),您可以执行以下操作: ulimit -Sn unlimited 如果您只想将提升的限制应用于一个命令,而不是应用于其他未来的命令,请在子 shell 中提高限制: (ulimit -Sn 2048 ; c1000k) 如果您想超出当前 4096 个描述符的硬限制,那么您可以从具有足够权限来提高硬限制的用户帐户运行测试,或者您可以更改在登录时设置的初始硬和软 ulimit 值用户帐户通过修改/etc/security/limits.conf或(更好)通过在/etc/security.d. 请参阅文件中的注释limits.conf或运行man limits.conf以获取详细信息。
有效(软)1024 描述符 ulimit 是进程的总数,包括用于非连接目的的描述符。显然,该进程使用了大约 100 个描述符来处理其他事情,只剩下 921 个用于连接。
lsof -p <process-id>
将向您展示如何使用描述符。要允许更多描述符,请在启动进程之前提高软限制。如果你从 bash 运行它,那将是:
将其提高到 2048 以用于将来的命令。要将软限制提高到允许的最大值(硬限制,在本例中为 4096),您可以执行以下操作:
如果您只想将提升的限制应用于一个命令,而不是应用于其他未来的命令,请在子 shell 中提高限制:
如果您想超出当前 4096 个描述符的硬限制,那么您可以从具有足够权限来提高硬限制的用户帐户运行测试,或者您可以更改在登录时设置的初始硬和软 ulimit 值用户帐户通过修改
/etc/security/limits.conf
或(更好)通过在/etc/security.d
. 请参阅文件中的注释limits.conf
或运行man limits.conf
以获取详细信息。