我有一个Web应用程序,用户输入了一堆非常重的图像,当用户按下按钮时,它将所有图像发送到我的节点服务器,该服务器需要将图像重新命名为800px和200px,并保存原始图像800和200px到ftp服务器。
我设法使所有工作正常进行,我唯一的问题是我的计算机非常有限,这是一台1 gb的内存计算机。因此,当服务器获取所有图像时,它将根据图像权重分配内存并完成所有工作,但是当完成所有操作后,服务器不会解除内存分配,因此这会导致机器运行如此缓慢,从而无法执行用于任何东西。另外,如果我发送过多的图像而使用的图像超出了内存限制,则机器也会变慢。
我将Ubuntu用作AWS机器中的操作系统。我还测试了图像处理库(sharp)和ftp客户端(node-ftp),但这都不是问题,因为在这些任务运行之前就已分配了内存。
因此,我需要一种在节点服务器上获取映像,处理所有内容的方法,并在完成后取消分配所有已使用的内存。
我还在具有16gb内存的计算机上进行了测试,每次将请求发送到计算机时,内存仍会堆积,但是显然我无法让它使用所有内存。
任何人都知道如何使它更好地工作?
我还使用了所有同步,因为当异步时,这件事还在发生。