大型php文件上传

大型php文件上传,php,upload,ram,Php,Upload,Ram,嘿,伙计们 所以。。。我有一个网站,需要上传文件,像,500兆大 我的问题是。。。我需要什么样的系统需求?特别是关于记忆。为了上传一个500MB的文件,我需要500MB的RAM吗?一次上传成功需要多少RAM?PHP,或者更好的web服务器,不会在RAM中缓冲整个上传 上载大小不直接取决于RAM大小。我不能说你的系统应该是什么样子,但我可以说我在几年前用低成本的工作站处理过GB大小的更新 请注意,如果要支持大型上载,必须更改以下php.ini设置: upload_max_filesize = '5

嘿,伙计们

所以。。。我有一个网站,需要上传文件,像,500兆大


我的问题是。。。我需要什么样的系统需求?特别是关于记忆。为了上传一个500MB的文件,我需要500MB的RAM吗?一次上传成功需要多少RAM?

PHP,或者更好的web服务器,不会在RAM中缓冲整个上传

上载大小不直接取决于RAM大小。我不能说你的系统应该是什么样子,但我可以说我在几年前用低成本的工作站处理过GB大小的更新

请注意,如果要支持大型上载,必须更改以下php.ini设置:

upload_max_filesize = '500M';

post_max_size = '500M';
关于内存:请注意,不是PHP会占用内存。web服务器将处理下载。在PHP中,您不必担心这个问题

如果使用Linux系统,则可以在键入时查看tcp缓冲区大小

cat /proc/sys/net/ipv4/tcp_rmem
在候机楼。您将看到3个数字。以字节为单位的最小、中等和最大缓冲区大小。在我的系统上,它是:

4096    87380   4115680
这意味着最大缓冲区大小约为3.9MB,大大小于现有的500MB


因此,在这种情况下,不要担心内存问题。很可能网络是瓶颈。

PHP,或者更好的是web服务器,不会在RAM中缓冲整个上传

上载大小不直接取决于RAM大小。我不能说你的系统应该是什么样子,但我可以说我在几年前用低成本的工作站处理过GB大小的更新

请注意,如果要支持大型上载,必须更改以下php.ini设置:

upload_max_filesize = '500M';

post_max_size = '500M';
关于内存:请注意,不是PHP会占用内存。web服务器将处理下载。在PHP中,您不必担心这个问题

如果使用Linux系统,则可以在键入时查看tcp缓冲区大小

cat /proc/sys/net/ipv4/tcp_rmem
在候机楼。您将看到3个数字。以字节为单位的最小、中等和最大缓冲区大小。在我的系统上,它是:

4096    87380   4115680
这意味着最大缓冲区大小约为3.9MB,大大小于现有的500MB


因此,在这种情况下,不要担心内存问题。网络很可能是瓶颈。

这可能有助于@Chris我的问题是什么?我只是有点匆忙…@Philippe Thx,但不是这个。这不是编程问题。你应该试试这个也许对@Chris有帮助我的问题出了什么问题?我只是有点匆忙…@Philippe Thx,但不是这个。这不是编程问题。你应该试穿一下我怀疑。。。您是否知道一次将缓冲多少RAM?是的。我知道上传大小和上传大小,现在我需要知道内存使用情况。我应该担心耗尽128MB的RAM吗?我认为实际使用的内存量将非常低。服务器可能会将该文件作为流读入并直接写入tmp文件,然后使用您选择的语言将其复制到正确的位置。我不确定如何测试该文件。。。另外,我没有直接访问服务器的权限。在您的开发设备上,将web服务器可以使用的最大内存设置为128MB,然后进行测试。如果您愿意,您可以创建一个与您的生产环境相匹配的虚拟机。我怀疑。。。您是否知道一次将缓冲多少RAM?是的。我知道上传大小和上传大小,现在我需要知道内存使用情况。我应该担心耗尽128MB的RAM吗?我认为实际使用的内存量将非常低。服务器可能会将该文件作为流读入并直接写入tmp文件,然后使用您选择的语言将其复制到正确的位置。我不确定如何测试该文件。。。另外,我没有直接访问服务器的权限。在您的开发设备上,将web服务器可以使用的最大内存设置为128MB,然后进行测试。如果需要,您可以创建一个与您的生产环境相匹配的VM。