
但是,有很多重要的细节和很多错误的描述,这很糟,所以我将在这里进行描述.

Internet上的许都说ulimit -n限制了单个进程中用户打开请求的最大数量. 严格来说,这种说法是错误的. 看一下ulimit的官方描述:

在允许进行控制的系统上,对外壳程序以及由外壳程序启动的进程提供可用资源的控制. -H和-S选项指定为给定资源设置硬限制或软限制. 硬限制一旦设置就无法增加;软限制可以增加到硬限制的值. 如果既未指定-H也未指定-S,则将同时设置软限制和硬限制. limit的值可以是为资源指定的单位中的数字,也可以是特殊值hard,soft或unlimited之一,分别代表当前的硬限制,当前的软限制和无限制.

如果省略limit打开句柄数,则除非给出-H选项,否则将打印资源软限制的当前值. 如果指定了多个资源,则限制名称和单位将显示在该值之前.

人们从来没有说过要限制用户单个进程打开的最大文件数. 从红色部分开始,它是限制当前外壳程序打开的文件数量以及该外壳程序启动的进程的数量. 为什么会有这样的错觉打开句柄数,即限制单个线程中文件的最大数量,因为在许多情况下,在Shell环境中,尽管可能有多个进程,但并没有很多进程消耗很多文件句柄,但是其中一个进程非常消耗文件句柄,例如在服务器上运行的tomcat,那么java进程将占据大部分文件句柄. 此时,由ulimit设置的最大文件数与java进程消耗的最大文件数基本上是相对应的,因此会给人一种错觉.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/dianqi/article-259112-1.html
很棒哦
我最愛的女團