0

我正在尝试在 Ubuntu 中设置打开文件的最大数量的值etc/security/limits.conf,但是当我触发命令时,我没有得到相同的值ulimit -a。我在 limits.conf 中添加以下值:

*          soft     nproc          65535
*          hard     nproc          65535
*          soft     nofile         65535
*          hard     nofile         65535

但在射击ulimit -a时,我得到:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
max nice                        (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 139264
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 30048
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
max rt priority                 (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 139264
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
4

2 回答 2

2

如果您的服务由 systemd 管理,那么您将需要使用以下内容更新您的服务文件

限制NOFILE=32768

例如 tomcat.service

于 2018-09-22T22:10:04.530 回答
0

您需要更改*用户名。这是参考。


默认 ulimit 值在哪里设置?(Linux,centos)

好的,我想通了。这似乎是 CentOS 6 或我的机器配置的问题。在 CentOS 5 配置上,我可以在 /etc/security/limits.conf 中设置:

* - nproc unlimited

这将有效地更新帐户和 cron 限制。但是,这在我的 CentOS 6 机器中不起作用。相反,我必须这样做:

myname1 - nproc unlimited  
myname2 - nproc unlimited
...

事情按预期工作。也许 UID 规范适用,但通配符 (*) 绝对不在这里。奇怪的是,通配符确实适用于“nofile”限制。

我仍然很想知道默认值实际上是从哪里来的,因为默认情况下,这个文件是空的,我不明白为什么两个 CentOS 机器有不同的默认值,它们具有相同的硬件并且来自同一个提供商.


于 2014-04-09T11:47:48.620 回答