【发布时间】:2017-03-22 05:50:04
【问题描述】:
我有一个专用的 Windows 2008 Server,配备 32GB RAM 和 Intel Xeon E3-1230 v2 处理器和 SQL Server 2008(标准版)。
有一个繁重的数据导入和清理过程,即从每天运行的 CSV 文件导入数据,整个过程大约需要 8-10 小时。
我的问题是,托管在同一台服务器上的 ASP.NET MVC 网站在导入过程中会在一小段时间内变慢。大多数情况下,它运行良好,但在此期间,网站将变得无响应且缓慢。导入过程不会触及站点使用的数据库。
- 我有哪些选择可以确保我的网站在整个过程中顺利运行?
- 是否有可能实现,记住在同一台服务器上导入数据期间会执行一些非常耗费资源的操作?
导入过程是一个 Windows 应用程序,它使用 SSIS 包导入数据,然后运行服务器 SQL Server 存储过程。
【问题讨论】:
-
没有什么可以做的。您可以处理的一件事是尝试在站点收到非常低的流量时运行繁重的工作。如果可能,您可以将流程外包给另一台服务器
-
问题是,如果导入过程在高峰时间也占用了所有可用内存,IIS 必须排队等待,直到它再次可用。是否可以将进口分成更小的块? MVC网站做了什么样的流程?是否可以将 CSV 文件的处理分成不同的步骤?
-
@DanieSchoeman 导入过程不像一个文件导入。有数百个 csv 文件。在将这些文件放入 db 之后还会发生更多事情。我们称之为匹配。就像您在价格比较网站上看到的那样。 MVC 网站非常简单。它只是显示了导入过程准备的数据。
-
由于导入过程不使用相同的网站数据库,您是否可以为导入过程db创建一个单独的实例并使用资源池为导入过程设置最大cpu和内存msdn.microsoft.com/en-us/library/bb934084.aspx
-
另一种选择:将您的 SQL Server 限制为仅使用最大内存量。这可以帮助 IIS 确保它至少有一定数量的剩余内存。在您的特定情况下,实际上需要限制内存的可能是 SSIS 和可能的 SSRS。首先要了解 SQL 和 SSIS 在一天中的不同时间和慢速时间实际使用了多少内存——这可能会给你一个线索。另外——如果这个服务器是虚拟的,那么更多的细节是相关的。
标签: asp.net sql-server sql-server-2008 iis window-server