更改Windows中打开文件的最大数量

时间:2014-12-03 21:01:10

标签: windows parallel-processing

我想知道如何更改Windows中打开文件的最大数量。类似于unix下的ulimit命令。在我的c:\ windows \ system32下,我找不到CONFIG.NT文件,因此更改CONFIG.NT文件中的文件号对我来说不起作用。

问题是我写了一个python脚本,其中我需要调用subprocess.Popen(cmd,stdout = sp.PIPE,stdin = sp.PIPE,shell = True)256或512次。这意味着我需要启动256或512个后台进程。只要启动的进程数小于255,脚本就可以正常工作。

2 个答案:

答案 0 :(得分:1)

这是一个老问题,但我会做出贡献。有一个限制,但它不是每个说的子过程的限制。 Python为每个子进程上的每个管道打开文件描述符。您的代码在255处断开,因为Window的默认限制为512个打开的文件描述符(非常接近2个管道x 255个子进程)。

请参阅此问题中的答案3:Why python has limit for count of file handles?。这个答案显示了如何增加Window的默认限制。您可以将开放限制更改为每个Windows限制最多2048个。

答案 1 :(得分:0)

一般声称Windows没有文件上限;正是你在内存中可以管理的东西。

我认为你会觉得有用:Russinvich's discussion of Windows handle resource limits 很有用。

我们构建可以处理数千个文件的并行程序。尽管有这些说法,但当我们试图打开(并同时保持打开)数千个文件时,我们似乎遇到资源限制。

我们发现将打开次数限制为几百是有用的。这似乎并没有超过限制而影响性能。使用并行应用程序中的计数信号量可以非常轻松地管理它。