2017-01-19 76 views
0

所以我们有使用VMWare组成的5台服务器的VM环境。 数据库服务器,所有webservers上的网站都是100%

  • 数据库服务器
  • 文件服务器(所有网站的内容放在这里)
  • 3个Web服务器的负载均衡配置

其他说明:

  • 应用程序网站使用.NET 3.5
  • 运行Windows Server 2008 R2标准版与IIS 7.5
  • 每个虚拟Web服务器正在运行至强2680具有4个核心和16GB内存的网络服务器
  • 数据库服务器是罚款

有每个网络服务器周围30个网站被导向由物理负载平衡器通过循环法进行。

每个单独的网站都有一个名为SharedContent的虚拟目录,它位于主网站文件夹之外 - 位于单独的内容服务器上。

该文件夹被共享并映射作为所有网站

虚拟文件夹,以便所有网站拉图像,拖车从同一文件夹中。 目前在根文件夹中有大约1400000个文件,在共享内容文件夹中有7个子文件夹中有几千个文件。

问题是,有几次所有的网络服务器都进入100%的CPU,并导致所有网站都没有响应,因为更多的请求正在通过。该应用程序基于ASP.NET 3.5,服务器开始返回503

网站被配置为使用基于ASP.NET文件缓存

我们怀疑它是什么做的SharedContent文件夹和所有其中的文件。我们做了一个将30个文件移动到共享文件夹(在所有站点中映射为虚拟目录)的测试 - 首先文件服务器达到100%CPU(可能重新索引文件),然后将这种影响级联到所有3个Web服务器,所有的网络服务器达到100%的CPU,并在那里停留

使web服务器恢复正常运行的唯一方法是从资源管理器中杀死具有高CPU使用率的进程。

我们不知道为什么会这样 - 我们是在一个补丁工作到该文件夹​​,这将最终创建子文件夹,并在那里移动文件中分发文件

什么,我们不知道是什么的它背后的原因? - 如果我们快速添加几个文件(复制20-30个文件)到该文件夹​​,CPU首先在文件内容服务器上启动,然后所有网络服务器一个接一个地拍摄高达100%的CPU使用率

中断:

  • 交通正常
  • 操作正常 - 没有大的文件突然被添加到该文件夹​​

如果任何人有任何想法,为什么出现这种情况?或背后的原因?

有没有人经历过这样的事情?

更新:20/1/17

所有的网站都对Web服务器的每个它自己的应用程序池。

当时在事件查看器中添加的唯一错误是请求超时。

去年8月基础架构从物理环境迁移到虚拟机,从来没有问题。

2016年11月底,3个网站升级为.net 4.5,其余的仍在.net 3.5上。 这个问题的一审发生在十二月底。

我们试图将另一个权限角色添加到SharedContent文件夹,该文件夹在高峰期将其拍摄至100%CPU。我们必须取消操作。

流量正常。

SharedContent被配置为映射驱动器。

+0

你在应用程序某处发现了内存泄漏。 – Asdfg

+0

命中100%CPU是否是一个特定的工作进程?另外,虽然技术上可行,但我在将大量文件存储在单个文件夹中时遇到了问题,是否可以将1.4M文件分解为不同的文件夹。另外我可以想象,所有内容都来自1台内容服务器,这可能会给这个盒子和内容盒与网络服务器本身之间的“网络”带来很大压力? – Liam

+0

它发生在所有网站上。它似乎要级联到所有3个网络服务器,并使其全部达到100%。是。所有内容都存储在文件服务器上,网络服务器只映射到它。 Sharedcontent文件夹位于主网站文件夹之外。我不明白的是它如何瀑布到所有3个网络服务器?虚拟机之间的内部链接是1千兆位。 – KevinC

回答

0

这是我要检查的东西;

让所有网站都有自己的应用程序池,或者是在每台服务器上的所有30个站点之间共享。

您是否隔离了正在使用100%的确切过程?

是否有任何错误被添加到事件查看器中?

您是否收到对外流量/内部流量的任何峰值。

虚拟主机上是否生成任何错误?

物理cpus是否被分配给vms?

机器是否在域控制器中?这是否触发了任何类型的更新活动?

共享内容如何完成,映射驱动器或MS分布式文件系统?如果使用DFS,它是什么拓扑?

+0

在原始文章中添加了其他信息 – KevinC

相关问题