0

我们使用第三方报告工具。报告工具使用active-x。首先,我们根据过滤器生成并运行查询,然后创建一个包含数据(查询结果)的报告文件。然后客户端下载报告文件。但是文件写入操作对我们来说是个大问题。我们能做什么?将文件写入操作放入另一个应用程序并将该应用程序放入另一个应用程序池可以是一个解决方案吗?你有什么建议吗?以及 Web 服务器如何运行、运行?例如,有 100 个客户端连接到 Web 服务器,它们正在尝试运行一些报告。所以 Web 服务器必须为这些客户端创建 100 个文件。那么,如果一个报表数据非常庞大,其他人会等待它完成吗?

4

2 回答 2

0

你的问题不是很清楚。你说写文件是个大问题,你是什么意思?是慢还是什么?

您的应用程序是否设计为一次服务一个客户?如果不是,那你为什么说其他人等待它的完成?

我假设您的应用程序可以一次为多个客户端提供服务。如果负载高,文件的写入会受到影响,因为 IO 会变慢。您需要对负载在实例之间分配的应用程序进行负载平衡,这样可以改进 IO。当然,实例应该在不同的机器上,因为问题在于 IO。可能还有其他一些问题,即逻辑是 CPU 密集型和内存占用。您需要分析您的应用程序以查找所有问题。

于 2009-07-16T03:28:08.433 回答
0

对于大型报告,您可以将请求放入处理队列中,让您的客户等待几分钟以使其准备就绪。大型数据集的即时报告生成会给您的系统带来很大压力,并且很难进行负载平衡。

也许让您的网站将请求转发到最终将由单独的报告生成服务器处理的队列。您可以添加更多这样的服务器来处理队列中的项目,这种处理不会影响网站用户,他们只需要忍受报告不是即时的。

还要考虑您可以事先进行的处理,以便所有处理都不是“按需”。如果他们每天都有相同的报告,请允许安排,这样您的客户就不会觉得他们等待报告的时间太长。

应该将繁重的 IO 卸载到不处理客户端 Web 请求的服务器上。

于 2009-07-16T03:34:06.380 回答