Asp.net电子商务业绩

时间:2009-02-07 18:33:29

标签: asp.net e-commerce

我正在使用C#在Asp.Net 3.5上开发电子商务项目。我使用3层(Data + Business + UI)结构来从数据库(Msql 2005)获取数据。

存储过程和从中发生的一切。(CRUD方法)

这里存在性能问题,项目运行速度很慢。我在事务模型中找不到任何问题。

该项目也在海外国家的共享主机上运行。数据库服务器和Web服务器在不同的机器上运行。数据库服务器有近1000个数据库。

如何测试和了解问题所在?

4 个答案:

答案 0 :(得分:5)

由于共有超过1000个数据库共享资源,我会采取可能是您的问题......如果您连接到数据库并且运行简单查询需要5秒钟,那么您可以猜出问题。 / p>

我会在您的网络服务器上运行的“测试页”上添加一些秒表功能。这应该为您提供基本信息,以查看在等待数据库返回您的查询时是否存在“瓶颈”。如果你已经做到那么远,那么我怀疑它将是你的网络服务器。

您的最后一个选择是设置一个带有DB和Web服务器的简单低规格机器并进行测试。根据您的网站获得的流量,您应该能够很好地了解其响应时间。

YSlow等工具也可能有所帮助,但这些工具通常用于微调。

答案 1 :(得分:1)

由于您在共享主机服务上运行,我猜您的问题就在于此。您正在与这些服务器上的每个其他网站和数据库竞争服务器资源。

为了确保,我会设置一个模仿您的生产环境的本地环境。然后执行一些标准压力测试以查看其执行情况。如果它按照您的预期执行,则可能是您的托管解决方案。

借助共享托管解决方案,您确实可以获得所需的费用。如果它是一个需要更快速度的系统,那么你应该看一下专用的托管解决方案。

答案 2 :(得分:1)

我建议您看看跟踪:

http://davidhayden.com/blog/dave/archive/2005/07/17/2396.aspx

这使您可以查看堆栈跟踪(文章中的最后一张图片),并本地化您的性能瓶颈。

答案 3 :(得分:0)

我开发的用于在我的网络应用上保存性能日志的快速解决方案可能对您有所帮助。我有一个Web服务器和数据库服务器运行类似的应用程序。我编写了一个运行“基准测试”存储过程的Web服务,并返回运行时。我写了一个在我的开发服务器上运行的win应用程序,它调用Web服务,传递要运行的存储过程的名称,以及整个请求需要多长时间。 win应用程序将数据写入日志文件,并作为计划任务每​​10分钟运行一次。额外的铃声和口哨声包括连续3次性能超过指定阈值,无法连接以及在缓慢的时间段恢复正常性能后自动发送给团队成员的电子邮件。

这提供了用户在任何特定时间在网站上的体验的一般指示,并作为团队的警告铃声。不完全是最好的解决方案,但几个月前我在几个小时内编写了它,并且已经多次使用它创建的数据进行故障排除。