2009-11-10 128 views
1

我们有一个非常奇怪的问题。服务器场中的一台服务器变得非常慢。我们在日志中看到大量超时,并且总体响应时间不是应该在的位置(并且位于服务器场中的其他服务器上)。Web服务器变慢(ASP.NET)

还有一点奇怪的是,它不仅仅是web应用程序 - 只需登录到服务器需要1.5分钟才能显示桌面。一旦进入系统,系统就会像以前一样响应 - 除非您尝试启动某些内容(即记事本),否则需要一分钟才能启动,启动后它可以正常工作。

我检查了一些东西 - 内存利用率是合理的,CPU低于15%,窗口句柄,事件日志不显示任何东西。

回收aps.net进程无法修复它 - 它仍然需要一分钟才能登录。重启服务器有帮助,但现在它又开始减速。

经过仔细观察,我们发现Windows Temp目录中充满了临时文件 - 超过65k个文件。这当然是需要照顾的。但我的问题是,它可能是缓慢的根源,还是还有其他潜伏在阴影中的东西?

编辑

更多的挖掘后,我就有关临时目录的大小问题归零英寸这article:描述了非常相似的东西。我仍然不太确定,因为服务器甚至打开甚至记事本的速度都很慢,这一事实仍不清楚。

在这样的条件下创建一个新的临时文件是否有可能花费一分钟?

+0

为什么'Temp'文件夹已满?它包含什么样的文件?这些文件与您的应用程序有关吗? – 2009-11-10 18:00:01

+0

@Darin出于多种原因,但主要是因为MS CryptQueryObject中存在已知的错误(请参阅http://support.microsoft.com/?id=931908。)。我们在研究这个问题的时候挖掘了这篇文章,但是现在我试图弄清楚这是否是真正的根本原因 – mfeingold 2009-11-10 18:07:02

+0

您提供的KB表示,当临时文件数量达到时,对CryptQueryObject的调用花费的时间比预期的要长约65,000。你在调用这个函数吗? – 2009-11-10 18:11:10

回答

1

好的,这是官方的,所有这些都是由this issue造成的悲伤。当我们的一台服务器再次表现不佳时,我们清理了临时目录并解决了问题,包括缓慢的登录。

最后这部分仍然令我感到困惑 - 我不明白,在一个临时目录中的文件的数量如何过量可引起登录接管1分钟,先不谈启动程序,但无论是在清除目录固定它和我可以和它一起生活。

0

你还检查虚拟内存吗?分页?你的应用程序在不同的文件中记录了很多数据吗?另外 - 检查 - 也许利用率发生在内核模式而不是用户模式。

+0

是的 - 所有这一切。我们将服务器停止轮换,网络应用程序没有任何活动,即使运行该Web应用程序的进程不再存在,但它仍然花费了一分多钟时间登录 – mfeingold 2009-11-10 17:58:08

1

您可能想要检查超时发生时您在ASP.NET线程池中使用的线程数。另一个想法可能是查看perfmon中的GC信息并查看GC是否正在运行gen2集合?

+0

我们检查了线程数和身体)以及GC统计数据。它们在坏服务器和好服务器之间非常相似。除此之外没有任何.NET相关说明服务器缓慢在网络应用程序关闭后 – mfeingold 2009-11-10 18:09:25

+0

可能值得询问/移动到服务器故障 – 2009-11-10 20:47:43