我正在尝试解决将大文件上传到运行 Apache 的 Windows 服务器时出现的性能不佳的问题。

Server:
Windows Server 2019 Datacenter
AMD EPYC 7763 64-Core Processor 2.44 GHz
32 GB RAM
Download speed (Mbps): 1737.12
Upload speed (Mbps): 2284.35

Local:
Download speed (Mbps): 269.31
Upload speed (Mbps): 48.37

Apache/PHP:
Apache/2.4.58 (Win64) PHP/8.2.16 OpenSSL/3.1.5 configured

File:
MP4 format
886 MB

我已经通过 WeTransfer 上传测试了基准,耗时 2 分 45 秒。

我面临的问题是,当尝试传输文件时,无论是使用分块的 plupload(50MB)还是简单的 HTML 多形式;通过网络浏览器大约需要 4 分 30 秒。

然后,我测试了一个命令 shell cURL 脚本,将同一个文件 POST 到同一个服务器(通过 http 和 https),传输耗时 2 分 32 秒。

有人能向我解释为什么通过 cURL 的性能比浏览器好得多吗?如果可能的话,我该如何配置 Apache 以使其性能更接近 cURL 传输?

提前致谢,

巴兹

编辑1

好的,我认为问题出现在通过 SSL 使用 PHP Web 表单时。

我在传输过程中监控了服务器以太网(Microsoft Hyper-V 网络适配器)的性能。

PHP web form HTTP  = 2:30m @48-50 Mbps
PHP web form HTTPS = 4:30m @30 Mbps

我仍然不确定为什么 curl 在 HTTP 或 HTTPS 上的行为相同,或者如何解决 PHP/SSL 问题。

5

  • 服务器配置如何影响浏览器的文件传输性能?


    – 

  • @vidarlo 我不知道,我只是在逻辑上思考。我对服务器的东西有点无知,我更像是一名开发人员。同一个浏览器与 WeTransfer 配合得很好,我的服务器能够快速上传(使用 cURL)。我问的是“是否”可以配置 Apache……


    – 

  • 对组件进行分析以找出瓶颈所在。curl与浏览器相同的方式与 Web 服务器对话,因此 Web 服务器配置不太可能影响其中一个而不影响另一个。


    – 


  • @vidarlo 谢谢老兄。有没有什么开源工具可以帮助完成这项任务?我能想到的唯一组件是浏览器和 PHP。


    – 

  • @vidarlo 请查看我的编辑,只是想知道这是否是进行 PHP/SSL 故障排除的正确论坛,或者最好将其放在 stackoverflow 上?


    – 

0