上传大文件时的Apache2内存使用情况

我运行PHP 5.2.10一起运行apache2.2.12。 PHP被configuration为通过fcgid作为单独的进程运行。 问题是当用户上传一个文件时,apache进程的大小几乎增加了相同的数量。 所以,如果有人试图上传一个200 MB的文件,其中一个subprocess膨胀到当前大小+ 200 MB。 如果两个用户同时开始上传,我的服务器崩溃。

现在是虚拟内存的规模在不断增加,但是由于我在基于OpenVZ的VPS上,这才是重中之重。

我的问题是:

  • 这是正常的Apache行为还是我可以做一些事情来解决这个问题?
  • 如果没有,是否有更有效的内存处理方式来处理大file upload。 按照目前的行为,每个接受上传的apache孩子都需要1GB的可用RAM。

谢谢!

Abhaya

有趣的问题,这似乎是一个PHP的限制。 请参阅以下内容:

他们最后似乎都说“使用java或Perl”或其他东西。 也许有人在stackoverflow有答案。 对于上传这个大,sftp可能是更好的解决scheme,这取决于如何用户友好的需要。

如果您愿意使用非php, JUpload看起来是一个不错的select,因为它可以将文件分解成块,并将每个块清除到磁盘。 如果它必须是PHP,看起来你可能能够推出一些自定义的一些套接字编程根据这个计算器后 。

在这个大小,你可能想要的东西与简历和进度的能力。