1

我有一个专用的 Windows 2008 Server,配备 32GB RAM 和 Intel Xeon E3-1230 v2 处理器和 SQL Server 2008(标准版)。

有一个繁重的数据导入和清理过程,即从每天运行的 CSV 文件导入数据,整个过程大约需要 8-10 小时。

我的问题是,托管在同一台服务器上的 ASP.NET MVC 网站在导入过程中会在短时间内变慢。大多数情况下,它运行良好,但在此期间,网站将变得无响应且缓慢。导入过程不会触及站点使用的数据库。

  1. 我有哪些选择可以确保我的网站在整个过程中顺利运行?
  2. 是否有可能实现,记住在同一台服务器上的数据导入期间会执行一些非常耗费资源的操作?

导入过程是一个 Windows 应用程序,它使用 SSIS 包导入数据,然后运行服务器 SQL Server 存储过程。

4

2 回答 2

5

Ankit 的快速解决方案是在您的专用托管服务器上安装 2 个 VM。一个虚拟机可以托管您的网站,另一个虚拟机可以托管您的数据库和导入过程。

从性能的角度来看,这是个案,因为您的问题非常普遍和广泛,因此社区不禁提示您仍然可以遵循。

  1. 为您的网站创建单独的应用程序池。

  2. 您可以根据需要为导入、IIS 等进程分配最小和最大 CPU 和内存利用率。

  3. 检查时钟速度;它是否在您的处理器和虚拟内存之间匹配。无论您拥有多少虚拟内存,您都需要 RAM 与处理器内核同步。

  4. 由于 SQL Server 标准版支持最多 4 个处理器内核。检查您的专用服务器中有多少内核。

如果找到适合您的任何其他提示,将更新。

于 2017-03-22T06:01:36.313 回答
1

对于我的问题,我从社区那里得到了一些非常好的想法。拥有两台虚拟机是一个很好的选择,但它受到我对该主题缺乏了解的限制。Anil 在评论中提出的解决方案也是一个很好的解决方案,我们可以使用两个单独的 SQL Server 实例并使用资源管理器来限制资源,但为此我们必须首先升级到企业版,这对我们目前来说是不可行的。

因此,考虑到成本,我们决定尝试 Varnish。计划是获得一个单独的 Linux VPS 并在那里设置 Varnish。Window Server 将成为 Varnish 的后端。一旦我们的导入过程准备好数据,我们的页面或多或少地保持静态,我认为我们会做得很好。

我希望它可以帮助某人。我仍然会接受 Rahul 提供的答案,因为在理想世界中这似乎是一个更好的解决方案。

于 2017-03-24T05:50:31.073 回答