我正在尝试做一些需要大量文件描述符的事情
sudo ulimit -n 12288像雪豹想去的一样高;超出这个结果
/usr/bin/ulimit:第 4 行:ulimit:打开文件:无法修改限制:无效参数。
我想把这个数字提高很多,比如 100000。这可能吗?
我在 Ubuntu 17.04 上。试图增加打开文件限制,但我在网上找到的所有说明都不起作用。我可以达到 4096,但不能超过那个。
$ ulimit -n
1024
$ ulimit -n 4096
$ ulimit -n
4096
Run Code Online (Sandbox Code Playgroud)
那个有效。这不会:
$ ulimit -n 4097
bash: ulimit: open files: cannot modify limit: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
似乎是因为硬限制:
$ ulimit -Hn
4096
Run Code Online (Sandbox Code Playgroud)
我尝试将这些行添加到 /etc/security/limits.conf:
* hard nofile 65535
* soft nofile 65535
root soft nofile 65535
root hard nofile 65535
Run Code Online (Sandbox Code Playgroud)
还将这一行添加到 /etc/pam.d/common-session 和 /etc/pam.d/common-session-noninteractive:
session required pam_limits.so
Run Code Online (Sandbox Code Playgroud)
自从这样做以来,我重新启动了我的电脑。对limits.conf 的更改似乎没有任何影响。硬限制仍然停留在 4096,阻止我进一步提高。如何增加我的打开文件限制?
这是一些额外的配置信息:
$ cat /proc/sys/fs/file-max
1624668
Run Code Online (Sandbox Code Playgroud) Mac OS X 将进程数限制为 266,将打开文件限制为 256。有时这是问题;256 个打开的文件和 266 个进程并不多。
如何在 Mac OS X 10.6.7 中更改默认的 ulimit 值?
(希望 10.6.7 和其他 Snow Leopard 版本之间没有区别。)
serverfault 中的相关问题。不幸的是,答案适用于 Mac OS X 10.5,在 10.6 中不起作用。
我启动了一个服务器应用程序,我想长时间运行它以进行测试。不幸的是,我之前忘记设置ulimit -c unlimited以捕获最终崩溃并检查它。有什么我可以做的吗?
我刚刚将 Mac OS X 更新为 Yosemite,现在有些应用程序无法运行(IBM DB2)。我知道我需要将 Open Files 设置为 65000,但是该命令不起作用。
Andress-MBP:~ root# ulimit -n 12288
Andress-MBP:~ root# ulimit -n 12289
-sh: ulimit: open files: cannot modify limit: Invalid argument
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,我该如何解决问题?
我有一个init.d使用start-stop-daemon --chuid SOME_SYSTEM_USER. 也就是说,应用程序在不同的用户下运行,而不是 root。
问题是,该应用程序需要特殊的限制设置(即ulimit -n 64000),我在limits.conf. 当我直接从 shell 运行它时,这非常有效:su - SOME_SYSTEM_USER+ start app from shell。
但是当运行start-stop-daemon --chuidfrom 时/etc/init.d,这些限制将被忽略。显然,该应用程序无法运行。
如何强制start-stop-daemon遵守ulimit设置?
Debian Squeeze, 2.6.32-5-686 #1 SMP 星期六 5 月 5 日 01:33:08 UTC 2012 i686 GNU/Linux
我添加了一行/etc/security/limits.conf以增加打开文件的数量。
* hard nofile 4096
root hard nofile 16384
Run Code Online (Sandbox Code Playgroud)
但是,当我运行时,ulimit -n它说 1024 是默认值。我注销并登录,但仍然看到 1024。我该如何应用更改?
我有一个作为 gearman 用户运行的进程,我想进行更改open files以避免出现这个令人讨厌的错误:
错误 2014-09-12 17:49:14.000000 [ main ] 接受(打开的文件太多)-> libgearman-server/gearmand.cc:788
如何在 Ubuntu 上以其他用户身份运行 ulimit 并更改打开的文件?我目前没有以 gearman 身份登录,但我有 root 访问权限。我尝试这样做:
su gearman --shell /bin/bash --command "ulimit -n"
Run Code Online (Sandbox Code Playgroud)
$ su gearman --shell /bin/bash --command "ulimit -n"
Password:
$
Run Code Online (Sandbox Code Playgroud) 我在示例中看到该-u选项与ulimit命令一起使用,但我找不到说明该选项含义的文档。man ulimit显示系统库函数的手册。有哪些选项,ulimit它们是什么意思?
好..
$ ulimit -s
8192
$ sudo ulimit -s 16384
$ ulimit -s
8192
Run Code Online (Sandbox Code Playgroud)
为什么要ulimit如此野蛮地不尊重我?
ulimit ×10
linux ×2
shell ×2
debian ×1
debug ×1
mac ×1
macos ×1
osx-yosemite ×1
parameters ×1
ubuntu ×1
ubuntu-17.04 ×1