我们使用第三方报告工具。报告工具使用active-x。 首先,我们生成并运行一个符合过滤器的查询,然后创建一个包含数据的报告文件(查询结果)。然后客户端下载报告文件。但文件写入操作对我们来说是个大问题。我们能做什么?将文件写入的操作带入另一个应用程序并将此应用程序带入另一个应用程序池可以解决方案你有什么建议吗? Web服务器如何运行,运行?例如,有100个客户端连接到Web服务器,他们正在尝试运行一些报告。因此,Web服务器必须为这些客户端创建100个文件。那么,如果报告数据非常庞大,其他人是否等待完成?
答案 0 :(得分:0)
你的问题不是很清楚。你说写文件是一个大问题,你的意思是什么?是慢还是什么?
您的应用程序是否设计为一次为一个客户服务?如果没有,那你为什么说别人等完成呢?
我认为您的应用程序可以同时为多个客户端提供服务。如果负载很高,则文件写入将受到影响,因为IO将减慢速度。您需要对负载在实例之间划分的应用程序进行负载平衡,这样就可以改进IO。当然,实例应该在不同的机器上,因为问题在于IO。还可能存在一些其他问题,即逻辑是CPU密集型以及内存耗尽。您需要对应用进行分析以找到所有问题。
答案 1 :(得分:0)
对于大型报表,您可以将请求放入处理队列中,让客户等待几分钟以使其准备就绪。大数据集的即时报告生成会给您的系统带来很大压力,并且很难实现负载平衡。
也许您的网站将请求转发到最终将由单独的报告生成服务器处理的队列。您可以添加更多这些服务器来处理队列中的项目,并且此处理不会影响网站用户,他们只需要处理报告不是即时的。
还要考虑您可以事先处理的处理,以便所有处理都不是“按需”。如果他们每天都有相同的报告,请允许其安排,这样您的客户就不会觉得他们等待报告太长了。
应将重IO卸载到不处理客户端Web请求的服务器。