为什么看起来 ajax 请求服务器比标准 http post 请求更多?

为什么看起来 ajax 请求服务器比标准 http post 请求更多?

我有一个 Web 应用程序,许多用户同时访问。这使我们的服务器运行缓慢且负担沉重,因为每个用户每次提交都会上传 10mb 到 100mb 的 pdf 文件或文本。使用 ajax 请求提交(文件转换为 dataurl)将使服务器比我仅使用标准 http post 上传更加繁忙。我们的服务器有 24GB 内存和 18 核处理器,还有 iis 7 windows server 2008,当 w3wp.exe 达到峰值时,将使用 4GB 内存,系统空闲 98% 的 CPU。我在任务管理器中看到。

并且我的申请也是作为子申请提出的。(例如:http://10.888.127.78/subapp

为什么会发生这种情况?如何解决 w3wp.exe 和系统空闲占用这么多资源的问题?

现在,当它再次出现问题时,我只需重新启动 iis 应用程序,但我需要更多的解决方案。

谢谢,抱歉我的英语不好

答案1

系统空闲时间是处理器不执行任何操作的时间,这不是问题。

至于文件上传,问题可能在于文件的实际编码。您提到文件在 Ajax 请求中转换为 dataurl,这意味着文件在上传时被编码为数据 URL 格式,并在上传后由服务器解码回二进制形式。数据 URL 编码文件比二进制编码文件占用更多空间。

我不确定,但我假设您的 Web 服务器首先将完整的数据 URL 格式数据接收到内存中,然后再对其进行解码并将其保存到磁盘。这部分占用内存。

因此,我建议您查看是否可以在 AJAX 请求中发送不带数据 URL 编码的文件。这应该可以节省服务器的一些内存。

相关内容