4

Mac OS X (10.6) 中每个进程的最大打开文件数是多少?

ulimit 说比 256,sysctl 说 10240,但是我的测试程序可以创建 9469(在 gdb 下),10252(没有 gdb)文件..

4

2 回答 2

9

现在很清楚了。

ulimit 命令是在 shell 中构建的。您可以使用 ulimit -n 命令为当前 shell(以及从该 shell 启动的每个程序)设置 maxfiles。

10252 个文件 - 这是我的错误.. 当我从 shell 启动我的测试程序时,最多打开 253 个文件(253 + stdin + stdout + stderr = 256)。

9469 个文件 - 我的测试程序在 Xcode 下运行的结果,似乎 Xcode 在运行程序之前设置了 tha maxfiles。

ulimit 不是系统范围的设置,这就是为什么要为 maxfiles 设置系统范围的值,您必须使用 launchctl(系统中的第一个进程,尝试“launchctl limit”)或 sysctl。

答案是 256 个文件。

于 2011-07-09T10:25:35.213 回答
0

在我的 Mac 上运行一些 python 脚本时,我遇到了一个相关的错误。该错误抱怨打开文件的限制。

ulimit -n看到告诉我256,我实际上很惊讶。

如果您最终在这里解决此问题,那么下一个合乎逻辑的步骤是增加限制。

如何提高该限制

为了补充 Dmitry 的答案,我将以下要点与解决方案联系起来(在 Mac OSX Catalina 上为我工作)。

上面链接的食谱将指导您如何增加限制。

/Library/LaunchDaemons/limit.maxfiles.plist
/Library/LaunchDaemons/limit.maxproc.plist

应用load.sh和系统rebot 后,我ulimit -n​​说524288。这让python脚本很高兴。GL!

于 2020-06-14T17:43:15.250 回答