2009-04-21 23 views
3

我正在做一个相当大的经典asp/SQL Server应用程序。 几个月前推出了一个新版本,其中包含许多新功能,而且我必须在某处出现一个非常恶劣的错误:一些非常基本的页面会随机执行很长时间。我如何找到为什么一些经典的asp页面会随机执行很长时间?

一些线索:

  • 这是不是数据库:当我运行查询分析器,它没有检测到任何长时间运行的查询
  • 当我启动IIS诊断工具,reqviewer显示,请求处于“正在处理”状态
  • 这可能发生在任何页面上
  • 我无法很容易地重现它,它完全是随机的。
  • 要有一个“很长的时间”的想法:今天早上我有一个页面需要超过5分钟执行,当它正常地应该返回到客户端不到100毫秒。
  • 该应用程序可以处理相当大的文件上传和下载(最大2 GB)。使用SoftArtisan FileUp也可以使用经典的asp脚本处理。不要认为它会导致问题,但我们已经有了这些上传了很长一段时间了。
  • 我在两台独立的服务器上有问题(在两个不同的位置,使用不同的数据集)。一种是使用良好的SQL Server 2000运行应用程序,另一种则运行SQL Server 2005.在这两种情况下,Web服务器都是IIS 6。

任何想法是什么问题或如何解决这类问题?

谢谢。

塞巴斯蒂安


编辑:

问题来自内存碎片。一些asp页面被用来从服务器上下载文件。文件大小可能从几kb到多于2 GB。这些大小的变化引起了内存碎片。 asp页面也可能需要一段时间才能执行(用户下载页面的时间减去IIS中缓存的时间),这对于快速执行的服务器页面来说并不是真正的标准。

这是我做过什么改善的事情:

  • 把所有的下载逻辑在一个ASP页面的会话关闭
  • ,让我把那个ASP页面中,可以特定的熔池被回收,每隔一段时间(立即下载将不再打扰应用程序的其余部分)
  • 打开LFH(低Fragmention堆),这是不是在默认情况下在Windows 2003上,以减少内存碎片

参考LFH:

回答

1

您可以确定这是否是所有页面的问题或页面的常见子集?

如果一个子集检查一下这些网页的共同点,例如都使用一个特定的COM DLL,其他页面没有。

此问题是否影响多个客户端或仅仅几个?

督察是有特定浏览器的操作系统版本的问题。

这是公开的还是内部网?

您可以从您拥有的客户端重现问题吗?

+0

好主意的网页的子集。我会看到我的用户,如果我可以缩小到一个页面的子集。 繁殖的问题在于它是随机的。你会工作一段时间,突然间它看起来像IIS挂了几分钟。如果您开始另一个浏览器会话,请转到完全相同的页面,快速获得结果。 因此,它看起来并不像浏览器操作系统版本特有的。 它是公开的 我无法重现它,因为它是或者看起来随机的... – 2009-04-21 08:41:57

+0

我找不到任何规则。我终于设置了一个任务,每天晚上在2上重置IIS和SQLServer,并且这似乎在做伎俩......现在,但我认为当负载增加时可能会重新出现。我可能会联系微软PSS,然后... 谢谢你的好主意! – 2009-05-01 10:56:01

1

有没有可能在SQL Server上进行一些全文搜索查询?

因为如果是这样,并且如果SQL Server无法访问Internet,它可能会在每隔几个小时左右尝试检查认证(尽管这不适用于SQL Server 2000)时导致45秒的延迟。

为了什么我指的是,read this的详细说明。

+0

有全文搜索查询,但sqlserver可以访问互联网。谢谢 – 2009-05-01 10:51:15

1

是否有其他应用程序在您的Web服务器上运行?如果是这样,你是否在与其中任何一个应用程序池相同的问题?如果是这样,请尝试为其创建专用应用程序池。也许其他应用程序中有一个出现问题,并对您的应用程序产生负面影响。

+0

该应用程序独自在游泳池中。谢谢... – 2009-05-01 10:52:32

2

我注意到一个传统的ASP + AJAX应用程序,我的工作是同样的事情。使用定时器,我定时页面加载为153毫秒,但在萤火虫瀑布图它随机说3.5秒。定时器输出在响应中,瀑布图声称它是Firefox等待来自服务器的响应。因为瀑布图也显示了响应,所以我可以将瀑布图与计时器进行比较,并且每隔一段时间就会有一个巨大的差异

1

有一点需要注意的是,如果您在IIS中启用了服务器端调试, Web服务器将以单线程模式运行。

所以,如果你尝试加载一个页面,其他人打的URL在同一时间,你会被排队在他们身后。看起来页面需要很长时间才能加载,但它仅仅是因为服务器在单个文件行中发出页面请求,有时候你并不在行的前端。

你可能已经把这个上进行调试时忘了关闭它的生产。

相关问题