2009-02-10 95 views
2

我很感激任何关于工具和实践的建议,我可以用它来确认我最近完成的网站是否正常运行。如何识别ASP.NET/IIS/SQL Server网站上的性能和并发问题

虽然我确信代码不会产生错误,并且功能正常,但我对如何识别IIS,SQL Server和Windows性能/并发问题了解甚少。例如,如果网站遭受了大量流量的短暂冲击,我怎么会意识到事件曾经发生过,我怎么知道网站是否应对了这个事件。

网站使用ASP.NET 2.0和C#编写运行在Windows 2003 R2标准版,SQL Server 2005工作组版和IIS 6

回答

1

考虑使用日志机制,也引起了警报,所以当一个数据库调用需要太多很长,表明服务器负载很高,记录器会发出警告。退房log4net

关于工具和实践,我建议badboy和jmeter作为负载测试您的网站的工具。 Badboy很简单,可以生成也可以在Jmeter中使用的网址。后者对你的网站进行了很好的负载测试。执行长时间运行的测试,并使用不同的硬件设置来查看添加更多Web /应用程序服务器如何影响性能。

另外,请查看PerfMon,该工具可让您监控本地或远程Windows服务器的竞争率,CPU负载等。

+0

干杯马库斯,非常有帮助。 – 2009-02-10 15:23:31

1

您可以使用像WebLOAD的负荷产生工具来捕获,然后重播(可能通过脚本进行变化)与大量线程和连接的应用程序UI的用户交互。

+0

我会研究WebLoad。谢谢。 – 2009-02-10 15:13:42

1

如前所述,负载生成工具非常有用。您可以为数据库端添加的一件事是使用SQL跟踪。使用非常具体的步骤设置测试计划,并且在逐步执行计划时,跟踪服务器上运行的SQL。

这样,您可以识别某些操作是否导致不必要/重复的数据库调用。此外,您可能会发现运行非常简单的操作的非常大且非高性能的查询。

+0

我相信SQL Trace是SQL Server Profiler的一部分,而SQL Server Profiler不包含在SQL Server 2005 Workgroup Edition中(相当烦人)。除此之外,一个很好的建议:) – 2009-02-10 15:12:45

1

对于SQL Server使用sys.dm_exec_requests视图DMV,检查CPU使用率,读,写,阻塞等等等等

select blocking_session_id,wait_type,* 
from sys.dm_exec_requests 
+0

好的建议,非常感谢。 – 2009-02-10 15:14:27