目前用于负载测试和分析ASP.NET Web应用程序的最佳实践是什么?

时间:2022-06-01 05:41:34

I am tasked with improving the performance of a particular page of the website that has an extremely high response time as reported by google analytics.

我的任务是改善网站特定页面的性能,该网站具有极高的响应时间,正如谷歌分析报告的那样。

Doing a few google searches reveals a product that came with VS2003 called ACT (Application Center Test) that did load testing. This doesn't seem to be distributed any longer

进行一些谷歌搜索显示VS2003附带的产品称为ACT(应用中心测试),它进行了负载测试。这似乎不再分发

I'd like to be able to get a baseline test of this page before I try to optimize it, so I can see what my changes are doing.

在尝试优化之前,我希望能够对此页面进行基线测试,因此我可以看到我的更改正在做什么。

Profiling applications such as dotTrace from Jetbrains may play into it and I have already isolated some operations that are taking a while within the page using trace.

来自Jetbrains的分析应用程序(如dotTrace)可能会发挥作用,我已经使用跟踪隔离了一些在页面中需要一段时间的操作。

What are the best practices and tools surrounding performance and load testing? I'm mainly looking to be able to see results not how to accomplish them.

围绕性能和负载测试的最佳实践和工具是什么?我主要希望能够看到结果而不是如何完成它们。

7 个解决方案

#1


Here is an article showing how to profile using VSTS profiler.

这篇文章展示了如何使用VSTS分析器进行分析。

If broken it is, fix it you should

如果它被破坏了,你应该修理它

Also apart from all the tools why not try enabling the "Health Monitoring" feature of asp.net.

除了所有工具之外,为什么不尝试启用asp.net的“健康监控”功能。

It provides some good information for analysis. It emits out essential information related to process, memory, diskusage, counters etc. HM with VSTS loadtesting gives you a good platform for analysis.

它为分析提供了一些很好的信息。它发出与过程,内存,磁盘,计数器等相关的基本信息。带有VSTS负载测试的HM为您提供了一个良好的分析平台。

Check out the below link..

看看下面的链接..

How to configure HealthMonitoring?

如何配置HealthMonitoring?

Also, for reference to some checklist have a look at the following rules/tips from yahoo....

此外,参考一些清单,看看雅虎的以下规则/提示....

High performance website rules/tips

高性能网站规则/提示

HttpWatch is also a good tool to for identifying specific performance issues.

HttpWatch也是识别特定性能问题的好工具。

HttpWatch - Link

HttpWatch - 链接

Also have a look at some of the tips here.. 10 ASP.NET Performance and Scalability secret

另外看看这里的一些技巧.10 ASP.NET性能和可扩展性秘诀

#2


Take a look at the ANTS Profiler from Red Gate. I use a whole slew of the Red Gate products and am very satisfied!

看一下Red Gate的ANTS Profiler。我使用了一大堆红门产品,我非常满意!

#3


There are a lot of different paths you can go down. Assuming a MS environment you can leverage some of the team system tools such as MS Team Tester to record tests and perform load testing against your site. These can be set to run as part of an automated build process.

你可以走很多不同的路径。假设MS环境,您可以利用某些团队系统工具(如MS Team Tester)来记录测试并对您的站点执行负载测试。这些可以设置为作为自动构建过程的一部分运行。

A list of tools is located at: http://www.softwareqatest.com/qatweb1.html#LOAD

工具列表位于:http://www.softwareqatest.com/qatweb1.html#LOAD

Now, you might start off simple. In this case install two firefox plugins: Firebug and YSlow for Firebug. These will give stats and point out issues such as page size, the number of requests made to get the page, etc. They will also make recommendations on some things to fix.

现在,你可以从简单开始。在这种情况下,安装两个firefox插件:Firebug和FireSug的YSlow。这些将提供统计数据并指出诸如页面大小,获取页面的请求数量等问题。他们还将就某些问题提出建议。

Further, you can use unit tests to execute a lot of the code behind to see what functions are hurting you.

此外,您可以使用单元测试来执行许多后面的代码,以查看哪些功能正在伤害您。

#4


You can do all sorts of testing if u have full MS dev system with TFS and Visual Studio Team Edition. Based on what I see here

如果您拥有带有TFS和Visual Studio Team Edition的完整MS dev系统,您可以进行各种测试。根据我在这里看到的

#5


I recently had a nice .Net bug which was running rampant. This tool sorta helped, but in your case, I could see it working nicely..

我最近有一个很好的.Net错误,它正在猖獗。这个工具有点帮助,但在你的情况下,我可以看到它运作良好..

http://www.jetbrains.com/profiler/

#6


Most of the time we've used WCAT from Microsoft. If your searches where bring up ACT then this is probably the tool you want to grab if you are looking for requests per second and the such. Mike Volodarsky has a good point pointing the way on how to grab this.

大部分时间我们都使用过微软的WCAT。如果您的搜索提出了ACT,那么如果您每秒都在寻找请求,那么这可能是您想要获取的工具。 Mike Volodarsky指出了如何抓住这一点的好方法。

We use it quite a bit internally when it comes to testing our network infrastructure or new web application and it is incredibly flexible once you get going with it. And it seems every demo Microsoft has done for us with new web tech they seem to be busting out WCAT to show off the improvements.

在测试我们的网络基础设施或新的Web应用程序时,我们会在内部使用它,并且一旦您开始使用它就非常灵活。似乎微软为我们所做的每一个演示都采用了新的网络技术,他们似乎正在淘汰WCAT来展示改进。

It's command line driven so it's kinda old school, but if you want power and customization it can't be beat. Especially for free.

这是命令行驱动所以它有点老派,但如果你想要力量和定制,它就无法被击败。特别是免费的。

Now, we use DotTrace also on our own applications when trying to track down performance issues, and the RedGate tools are also nice. I'd definitely recommend a combination of the two of them. They both give you some pretty solid numbers to track down which part of your app is the slowdown and I can't imagine life without DotTrace.

现在,我们在尝试追踪性能问题时也在我们自己的应用程序上使用DotTrace,而RedGate工具也很不错。我肯定会推荐他们两个的组合。他们都给你一些非常可靠的数字,以追踪你的应用程序的哪个部分是减速,我无法想象没有DotTrace的生活。

#7


Visual Studio Test Edition (2008 or 2010) comes with a very good load testing component for ASP.NET apps. It allows you to get statistics for all the perfmon stats for a server (from basics like CPU and disk waits to garbage collection and SQL locks)

Visual Studio Test Edition(2008或2010)为ASP.NET应用程序提供了一个非常好的负载测试组件。它允许您获取服务器的所有perfmon统计信息的统计信息(从CPU和磁盘等待等基础知识到垃圾收集和SQL锁定)

Create a load test for the page and run it, storing the stats in a database for the base line. Subsequent runs can be compared.

为页面创建负载测试并运行它,将统计信息存储在基准线的数据库中。可以比较后续运行。

#1


Here is an article showing how to profile using VSTS profiler.

这篇文章展示了如何使用VSTS分析器进行分析。

If broken it is, fix it you should

如果它被破坏了,你应该修理它

Also apart from all the tools why not try enabling the "Health Monitoring" feature of asp.net.

除了所有工具之外,为什么不尝试启用asp.net的“健康监控”功能。

It provides some good information for analysis. It emits out essential information related to process, memory, diskusage, counters etc. HM with VSTS loadtesting gives you a good platform for analysis.

它为分析提供了一些很好的信息。它发出与过程,内存,磁盘,计数器等相关的基本信息。带有VSTS负载测试的HM为您提供了一个良好的分析平台。

Check out the below link..

看看下面的链接..

How to configure HealthMonitoring?

如何配置HealthMonitoring?

Also, for reference to some checklist have a look at the following rules/tips from yahoo....

此外,参考一些清单,看看雅虎的以下规则/提示....

High performance website rules/tips

高性能网站规则/提示

HttpWatch is also a good tool to for identifying specific performance issues.

HttpWatch也是识别特定性能问题的好工具。

HttpWatch - Link

HttpWatch - 链接

Also have a look at some of the tips here.. 10 ASP.NET Performance and Scalability secret

另外看看这里的一些技巧.10 ASP.NET性能和可扩展性秘诀

#2


Take a look at the ANTS Profiler from Red Gate. I use a whole slew of the Red Gate products and am very satisfied!

看一下Red Gate的ANTS Profiler。我使用了一大堆红门产品,我非常满意!

#3


There are a lot of different paths you can go down. Assuming a MS environment you can leverage some of the team system tools such as MS Team Tester to record tests and perform load testing against your site. These can be set to run as part of an automated build process.

你可以走很多不同的路径。假设MS环境,您可以利用某些团队系统工具(如MS Team Tester)来记录测试并对您的站点执行负载测试。这些可以设置为作为自动构建过程的一部分运行。

A list of tools is located at: http://www.softwareqatest.com/qatweb1.html#LOAD

工具列表位于:http://www.softwareqatest.com/qatweb1.html#LOAD

Now, you might start off simple. In this case install two firefox plugins: Firebug and YSlow for Firebug. These will give stats and point out issues such as page size, the number of requests made to get the page, etc. They will also make recommendations on some things to fix.

现在,你可以从简单开始。在这种情况下,安装两个firefox插件:Firebug和FireSug的YSlow。这些将提供统计数据并指出诸如页面大小,获取页面的请求数量等问题。他们还将就某些问题提出建议。

Further, you can use unit tests to execute a lot of the code behind to see what functions are hurting you.

此外,您可以使用单元测试来执行许多后面的代码,以查看哪些功能正在伤害您。

#4


You can do all sorts of testing if u have full MS dev system with TFS and Visual Studio Team Edition. Based on what I see here

如果您拥有带有TFS和Visual Studio Team Edition的完整MS dev系统,您可以进行各种测试。根据我在这里看到的

#5


I recently had a nice .Net bug which was running rampant. This tool sorta helped, but in your case, I could see it working nicely..

我最近有一个很好的.Net错误,它正在猖獗。这个工具有点帮助,但在你的情况下,我可以看到它运作良好..

http://www.jetbrains.com/profiler/

#6


Most of the time we've used WCAT from Microsoft. If your searches where bring up ACT then this is probably the tool you want to grab if you are looking for requests per second and the such. Mike Volodarsky has a good point pointing the way on how to grab this.

大部分时间我们都使用过微软的WCAT。如果您的搜索提出了ACT,那么如果您每秒都在寻找请求,那么这可能是您想要获取的工具。 Mike Volodarsky指出了如何抓住这一点的好方法。

We use it quite a bit internally when it comes to testing our network infrastructure or new web application and it is incredibly flexible once you get going with it. And it seems every demo Microsoft has done for us with new web tech they seem to be busting out WCAT to show off the improvements.

在测试我们的网络基础设施或新的Web应用程序时,我们会在内部使用它,并且一旦您开始使用它就非常灵活。似乎微软为我们所做的每一个演示都采用了新的网络技术,他们似乎正在淘汰WCAT来展示改进。

It's command line driven so it's kinda old school, but if you want power and customization it can't be beat. Especially for free.

这是命令行驱动所以它有点老派,但如果你想要力量和定制,它就无法被击败。特别是免费的。

Now, we use DotTrace also on our own applications when trying to track down performance issues, and the RedGate tools are also nice. I'd definitely recommend a combination of the two of them. They both give you some pretty solid numbers to track down which part of your app is the slowdown and I can't imagine life without DotTrace.

现在,我们在尝试追踪性能问题时也在我们自己的应用程序上使用DotTrace,而RedGate工具也很不错。我肯定会推荐他们两个的组合。他们都给你一些非常可靠的数字,以追踪你的应用程序的哪个部分是减速,我无法想象没有DotTrace的生活。

#7


Visual Studio Test Edition (2008 or 2010) comes with a very good load testing component for ASP.NET apps. It allows you to get statistics for all the perfmon stats for a server (from basics like CPU and disk waits to garbage collection and SQL locks)

Visual Studio Test Edition(2008或2010)为ASP.NET应用程序提供了一个非常好的负载测试组件。它允许您获取服务器的所有perfmon统计信息的统计信息(从CPU和磁盘等待等基础知识到垃圾收集和SQL锁定)

Create a load test for the page and run it, storing the stats in a database for the base line. Subsequent runs can be compared.

为页面创建负载测试并运行它,将统计信息存储在基准线的数据库中。可以比较后续运行。